tika - text extract python




Esiste un modulo Python per convertire RTF in testo normale? (6)

C'è una buona libreria pyrtf-ng per la gestione RTF per tutti gli usi.

Idealmente, mi piacerebbe un modulo o una libreria che non richieda l'accesso da parte di un superutente per l'installazione; Ho dei privilegi limitati nel mio ambiente di lavoro.



Ho lavorato su una libreria chiamata Pyth, che può fare questo:

http://pypi.python.org/pypi/pyth/

La conversione di un file RTF in testo normale è simile a questa:

from pyth.plugins.rtf15.reader import Rtf15Reader
from pyth.plugins.plaintext.writer import PlaintextWriter

doc = Rtf15Reader.read(open('sample.rtf'))

print PlaintextWriter.write(doc).getvalue()

Pyth può anche generare file RTF, leggere e scrivere XHTML, generare documenti da Python markup a la Nevow, e ha un supporto sperimentale limitato per l'output di latex e pdf. Il suo supporto RTF è piuttosto robusto - lo usiamo in produzione per leggere i file RTF generati da varie versioni di Word, OpenOffice, Mac TextEdit, EIOffice e altri.


Mi sono appena imbattuto in pyrtflib - non c'è molta (nessuna) documentazione su di esso, è un po 'come installarlo e quindi usare la funzione di aiuto () per scoprire cosa è disponibile e cosa fa tutto.

Detto questo, nella mia piccola versione di prova della sua funzione rtf.Rtf2Html.getHtml () è andata abbastanza bene. Non ho ancora provato la funzione Rtf2Txt ma vista la natura più semplice della conversione di rtf in testo normale dovrebbe andare bene mi aspetterei.


OpenOffice ha un lettore RTF. Puoi usare python per scrivere OpenOffice, vedi qui per maggiori informazioni .

Probabilmente potresti provare a usare l'oggetto magico com su Windows per leggere tutto ciò che odora ms-binary. Non lo consiglierei comunque.

In realtà l'analisi dei dati grezzi probabilmente non sarà molto difficile, vedi questo esempio scritto in .bat / QBasic.

DocFrac è un convertitore open source gratuito tra RTF, HTML e testo. Piattaforme Windows, Linux, ActiveX e DLL disponibili. Probabilmente sarà piuttosto facile racchiuderlo in python.

RTF::TEXT::Converter - estensione Perl per convertire RTF in testo . (in caso di problemi con DocFrac).

Specifications RTF (Official Rich Text Format), versione 1.7, di Microsoft.

Buona fortuna (con i privilegi limitati nel tuo ambiente di lavoro).


Viceversa, se si desidera scrivere facilmente RTF da Python, è possibile utilizzare il modulo di terze parti rtflib . È un modulo abbastanza nuovo e incompleto ma ancora molto potente e utile. Di seguito è riportato un esempio che scrive "ciao mondo" nel testo RTF in un file RTF chiamato helloworld.rtf. Questo è un esempio molto primitivo e il modulo può anche essere usato per aggiungere colori, corsivo, tabelle e molti altri aspetti del rich text ai file RTF.

from rtflib import *
file = RTF("helloworld.rtf")
file.startfile()
file.addstrict()
file.addtext("hello world")
file.writeout()






rtf