2010-07-19 15 views
8

csv.reader() जैसा कोई अन्य कार्य करता है जो अजगर में .rtf, .txt, .doc फ़ाइलों को पढ़ सकता है?डॉक्टर, rtf और अजगर में txt पाठक

+0

संबंधित: [अजगर में एमएस शब्द फ़ाइलों से निकालने पाठ] (http://stackoverflow.com/q/125222/4279) – jfs

उत्तर

9

आप

txt = open("file.txt").read() 

साथ एक पाठ फ़ाइल पढ़ सकते हैं आरटीएफ फ़ाइलों के लिए PyRTF की कोशिश करो। मुझे लगता है कि एमएस वर्ड .doc फ़ाइलों को पढ़ना बहुत संभावना नहीं है जब तक कि आप विंडोज़ पर न हों और आप उन फ़ाइलों को पढ़ने के लिए कुछ मूल एमएस इंटरफेस का उपयोग कर सकते हैं। This article शब्द दिखाने के लिए दावा करता है कि वर्ड के साथ इंटरफ़ेस स्क्रिप्ट कैसे लिखें।

4

csv एक विशिष्ट प्रारूप है इसलिए आपको इसे पढ़ने के लिए "पार्सर" की आवश्यकता है। जैसा कि आपने उल्लेख किया है, सीएसवी मॉड्यूल यही है। टेक्स्ट फाइलें (आमतौर पर .txt के साथ प्रत्यय) कोई निश्चित "प्रारूप" नहीं है, इसलिए आप उन्हें open इन्हें बाद में पढ़ सकते हैं (जेसी का जवाब विवरण देता है)। सीएसवी फाइलें आमतौर पर टेक्स्ट फाइलें होती हैं ताकि आपका भेद बहुत सटीक न हो।

आरटीएफ के लिए, उनमें से एक समूह है। विवरण के लिए this answer देखें। पीईआरटीएफ चीज जो जेसी का उल्लेख है वह सबसे लोकप्रिय प्रतीत होता है।

माइक्रोसॉफ्ट वर्ड दस्तावेज़ फाइलें (आमतौर पर .doc के साथ प्रत्यय) प्रारूप एक अन्य जानवर हैं क्योंकि प्रारूप स्वामित्व है। मुझे पाइथन कन्वर्टर्स के साथ ज्यादा अनुभव नहीं है लेकिन कुछ कमांड लाइन वाले हैं (जैसे wvHTML) जो कुछ हद तक सभ्य काम करते हैं। This question काफी कुछ चर्चा करता है। एमएस-वर्ड स्वयं के माध्यम से आपके लिए ऐसा करने का विकल्प भी है। जेसी जैसे एक COM इंटरफ़ेस का उल्लेख किया गया है।

3

मुझे वास्तविक सिरदर्द शब्द और लेखक दस्तावेज़ों के लिए यह आसान काम करने की कोशिश कर रहा है।

एक सरल उपाय है: कमांड लाइन पर OpenOffice फोन पाठ में अपने लक्ष्य दस्तावेज़ कन्वर्ट करने के लिए है, तो अजगर में पाठ लोड।

अन्य रूपांतरण टूल मैंने अविश्वसनीय आउटपुट का उत्पादन करने की कोशिश की, जबकि अन्य पायथन ओओ पुस्तकालय बहुत जटिल थे।

तुम सिर्फ पाठ में प्राप्त करने के लिए ताकि आप इसे संसाधित कर सकते हैं चाहते हैं, linux कमांड लाइन पर इस का उपयोग करें:

soffice --headless --convert-to txt:Text /path_to/document_to_convert.doc 

(उपप्रक्रिया का उपयोग कर यदि आप इसे स्वचालित करना चाहते हैं अजगर से यह कहते हैं)।

यह टेक्स्ट फ़ाइल बनाएगा जिसे आप आसानी से पाइथन में लोड कर सकते हैं।

(Credit)

4
import win32com.client 
if tmpFile.endswith('.xml') or tmpFile.endswith('.doc') or tmpFile.endswith('.docx'): 
     app = win32com.client.Dispatch("Word.Application") 
     app.Visible = False 
     app.Documents.Open(tmpFile) 
     doc = app.ActiveDocument 

     docText = doc.Content.Text 
     print(docText) 
     doc.Close() 
     app.Quit() 
+2

'का उपयोग न करें |'। इसके लिए एक 'या' है। – FunkySayu

0

वहाँ एक अजगर मॉड्यूल कहा जाता है 'docx' जो आप .docx फ़ाइलों को पढ़ने के लिए उपयोग कर सकते हैं। आप .doc को पढ़ने में सक्षम नहीं होंगे हालांकि आजकल यह लगभग अप्रचलित है।

from docx import Document 
doc = Document(filepath) 
# Reading Data 
data = doc.paragraphs 
tables = doc.tables 

आप इसे पीपीपी पर Here पा सकते हैं।

संबंधित मुद्दे