Idealmente, mi piacerebbe un modulo o una libreria che non richieda l'accesso da superutente per l'installazione; Ho dei privilegi limitati nel mio ambiente di lavoro.Esiste un modulo Python per convertire RTF in testo normale?
risposta
OpenOffice ha un lettore RTF. Puoi usare python per scrivere OpenOffice, see here for more info.
Probabilmente si potrebbe provare a utilizzare 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, see this example 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 semplice racchiuderlo in python.
RTF::TEXT::Converter - Estensione Perl per la conversione di RTF nel testo. (in caso di problemi con DocFrac).
Formato RTF ufficiale (RTF) Specifications, versione 1.7, di Microsoft.
Buona fortuna (con i privilegi limitati nel tuo ambiente di lavoro).
Grazie. Ho aperto il documento in OpenOffice e l'ho salvato come un semplice file di testo. Questo era probabilmente l'approccio più semplice. E grazie per avermi ricordato che è il mio ambiente di lavoro. Ho chiesto l'accesso sudo. – Tony
Il collegamento a RTF :: TEXT :: Converter è rotto. Così è il link alla discussione sulla mailing list python. Questo è il motivo per cui le risposte ai link sono scoraggiate ... – GreenAsJade
grazie per averlo indicato, ho risolto uno dei link. Purtroppo l'altro doveva essere cancellato. –
C'è una buona libreria pyrtf-ng per la gestione RTF per tutti gli usi.
Grazie, ma il problema con pyrtf-ng è che è utile per generare file RTF, non per analizzarli. L'ho scaricato dalla sua pagina SourceForge (non c'è nulla sotto la scheda Download di Google Code), e questa è l'unica funzionalità che ho trovato. – Tony
@tony, hai guardato http://code.google.com/p/pyrtf-ng/source/browse/#svn/trunk/rtfng/parser? Quando non ci sono ancora download su un progetto ospitato da Google Code, sfoglia le fonti! -) –
Avete controllato pyrtf-ng?
Aggiornamento: La funzionalità di analisi è disponibile se si esegue un checkout di Subversion, ma non sono sicuro di quanto sia completo. (Cerca nel modulo rtfng.parser.base
.)
Mi sono imbattuto nella stessa cosa e stavo cercando di codificarlo da solo. Non è così facile, ma ecco cosa ho avuto quando ho deciso di andare per una app di comando. È rubino ma puoi adattarti molto facilmente al pitone. C'è un po 'di spazzatura per le intestazioni da pulire, ma puoi vedere più o meno l'idea.
f = File.open('r.rtf','r')
b=0
p=false
str = ''
begin
while (char = f.readchar)
if char.chr=='{'
b+=1
next
end
if char.chr=='}'
b-=1
next
end
if char.chr=='\\'
p=true
next
end
if p==true && (char.chr==' ' or char.chr=='\n' or char.chr=='\t' or char.chr=='\r')
p=false
next
end
if p==true && (char.chr=='\'')
#this is the source of my headaches. you need to read the code page from the header and encode this.
p=false
str << '#'
next
end
next if b>2
next if p
str << char.chr
end
rescue EOFError
end
f.close
Ho lavorato su una libreria chiamata Pyth, che può fare questo:
http://pypi.python.org/pypi/pyth/
Conversione di un file RTF in testo in chiaro sembra qualcosa di simile:
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 dal markup Python alla Stan, e ha un supporto sperimentale limitato per il latex e il pdf outpu t. Il suo supporto RTF è pretty robust - lo usiamo in produzione per leggere i file RTF generati da varie versioni di Word, OpenOffice, Mac TextEdit, EIOffice e altri.
Shame non è compatibile con Python 3-- – Epoc
@Epoc, c'è un po 'di lavoro per renderlo compatibile con Python 3. Ho un fork nel mio repository che puoi installare con 'pip install git + https: //github.com/robertour/pyth @ pyth-py3'. Puoi vedere alcune delle discussioni [qui] (https://github.com/brendonh/pyth/pull/33/commits). –
Al contrario, se si desidera scrivere RTF facilmente 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()
PyRTF-ng 0.9.1 non ha analizzato nessuno dei miei documenti RTF, sia con la ParsingException. Il primo documento è stato generato con OpenOffice 3.4, il secondo con Mac TextEdit.
Pyth 0.5.6 analizzato senza problemi entrambi i documenti, ma non ha elaborato correttamente i simboli cirillici.
Ma ogni editor apre il documento dell'editor altrui in modo corretto e senza problemi, quindi tutte le librerie sembrano avere un debole supporto RTF.
Quindi sto scrivendo il mio parser con il blackjack e le prostitute.
(Ho caricato i due file, in modo da poter controllare le librerie RTF da soli: http://yadi.sk/d/RMHawVdSD8O9http://yadi.sk/d/RmUaSe5tD8OD)
link dead, ce l'hai ancora? – n611x007
Ho appena incontrato pyrtflib - non c'è molto (qualsiasi) la documentazione su di esso, è un pò un caso di installazione e quindi usando la funzione di aiuto integrato() 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.
Da allora ha dato la funzione Rtf2Txt.getText() e ha funzionato benissimo - il mio uso non è stato un test di tortura esaustivo per tutti i casi, ma tutti i casi che ho provato mi hanno dato l'output atteso – Blair
Ecco un link ad uno script che converte RTF in testo utilizzando espressioni regolari: Regular Expression for extracting text from an RTF string
Inoltre, e collegamento aggiornato su github: Github link
- 1. Delphi: il modo migliore per convertire rtf in testo
- 2. Esiste un modo gratuito per convertire RTF in PDF?
- 3. Come creare RTF da testo normale (o stringa) in C#?
- 4. HTML in stringa RTF utilizzando Python
- 5. codici convertire HTML in testo normale
- 6. Come convertire FlowDocument in rtf
- 7. Quale modulo CPAN consiglieresti per trasformare l'HTML in testo normale?
- 8. come convertire il testo HTML in testo normale?
- 9. HTML reso a testo normale usando Python
- 10. Come convertire super o subscript in testo normale in C#
- 11. Esiste un modulo Python in cui posso convertire facilmente le frazioni miste in un float?
- 12. Python: Come convertire testo formattato con markdown in testo
- 13. Si considera un errore di modulo normale?
- 14. Caricamento del testo RTF dal database in TRichEdit
- 15. Come copiare testo RTF negli appunti da utilizzare in excel
- 16. Esiste un modulo per Python che esegue il riconoscimento facciale?
- 17. Esiste un modulo websocket Python 3 per server?
- 18. Densità normale multivariata in Python?
- 19. Intervallo di riga in formato RTF
- 20. Evidenziazione della sintassi per testo normale (testo sublime)
- 21. Come convertire una stringa in RTF in C#?
- 22. Convertire elemento jQuery per un normale elemento DOM
- 23. Importare un modulo in Python solo se non esiste già
- 24. Convertitore RTF in Wiki?
- 25. Come convertire un DataFrame in normale RDD in pyspark?
- 26. Come inserire testo normale?
- 27. convertendo QdateTime in normale python dateTime?
- 28. \ cb non funziona per RTF
- 29. Convertire un PCL in una normale libreria di classi
- 30. Set RTF testo nel controllo WPF RichTextBox
È possibile installare i pacchetti di Python con 'easy_install' e il' - -user' opzione senza autorizzazioni. –