Come posso contare le parole in documenti complessi (.rtf, .doc, .odt, ecc.)?
-
20-09-2019 - |
Domanda
Sto cercando di scrivere una funzione Python che, dato il percorso di un file di documento, restituisca il numero di parole in quel documento.Questo è abbastanza semplice da fare con i file .txt e ci sono strumenti che mi consentono di modificare insieme il supporto per alcuni formati di documenti più complessi, ma voglio una soluzione davvero completa.
Osservando l'interfaccia di scripting py-uno di OpenOffice.org e l'elenco dei formati supportati, sembrerebbe l'ideale caricare i documenti in un OOo senza testa e richiamare la sua funzione di conteggio delle parole.Tuttavia, non riesco a trovare tutorial py-uno o codice di esempio che vadano oltre la generazione di documenti di base e anche i frammenti di codice che ho trovato non sono aggiornati di mezzo decennio e non funzionano più.
Utilizzando o meno OOo e Uno, come posso ottenere un conteggio delle parole affidabile per documenti di vari formati?
Soluzione
caricare i documenti in un OOo headless e chiamalo funzione di conteggio delle parole
PyODConverter è uno script recente (11-2009) per utilizzare OOo per convertire più tipi di file.Osservando lo script, si nota che prevede il caricamento di base di tutti i documenti supportati da OOo.
Ecco come avviare OOo come servizio headless:
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
Quindi devi solo scrivere un piccolo bootstrapper che richiama OOo dalla riga di comando, esegue lo script e quindi chiude OOo.
Altri suggerimenti
Questo potrebbe non essere l'opzione per voi, ma nel caso in cui si tratta - è possibile caricare i documenti da Google Docs e quindi esportare in formato txt. Google di solito fa lavoro molto bello per la conversione.
Si possono trovare le API rilevanti qui: http: //code.google.com/intl/pl/apis/documents/docs/1.0/developers_guide_python.html
Date un'occhiata al login, Caricamento ed esportazione sezioni.