2010-07-19 32 views
8

Giống như csv.reader() có bất kỳ chức năng nào khác có thể đọc các tệp .rtf, .txt, .doc bằng Python không?Trình đọc tài liệu, rtf và txt trong python

+0

liên quan: [trích xuất văn bản từ các tệp từ MS trong python] (http://stackoverflow.com/q/125222/4279) – jfs

Trả lời

9

Bạn có thể đọc một tập tin văn bản với

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

Hãy thử PyRTF cho các tập tin RTF. Tôi nghĩ rằng đọc MS Word .doc tập tin là khá khó trừ khi bạn đang ở trên Windows và bạn có thể sử dụng một số giao diện MS bản địa để đọc những tập tin đó. This article xác nhận quyền sở hữu để hiển thị cách viết tập lệnh giao diện với Word.

4

csv là định dạng cụ thể, do đó bạn cần "trình phân tích cú pháp" để đọc. Đây là những gì mô-đun csv cung cấp như bạn đã đề cập. Các tệp văn bản (thường được gắn với .txt) không có bất kỳ "định dạng" cố định nào để bạn có thể đọc chúng sau khi open nhập chúng (câu trả lời của Jesse cung cấp chi tiết). Tệp CSV thường là tệp văn bản nên sự khác biệt của bạn không chính xác lắm.

Đối với RTF, Có một nhóm trong số đó. Xem this answer để biết chi tiết. Điều PyRTF mà Jesse đề cập có vẻ là phổ biến nhất mặc dù.

Tệp tài liệu Microsoft Word (thường được gắn liền với .doc) là một con thú khác vì định dạng này là độc quyền. Tôi không có nhiều kinh nghiệm với các trình chuyển đổi Python nhưng có một vài dòng lệnh (như wvHTML) làm một công việc khá tốt. This question thảo luận khá nhiều. Ngoài ra còn có các tùy chọn có MS-Word chính nó làm điều đó cho bạn thông qua. một giao diện COM như Jesse đã đề cập.

3

Tôi đã có một nhức đầu thực sự cố gắng để làm điều này đơn giản cho các tài liệu từ và nhà văn.

Có một giải pháp đơn giản: gọi openoffice trên dòng lệnh để chuyển tài liệu đích của bạn thành văn bản, sau đó tải văn bản vào Python.

Các công cụ chuyển đổi khác mà tôi đã thử sản xuất không đáng tin cậy, trong khi các thư viện OOo Python khác quá phức tạp.

Nếu bạn chỉ muốn nhận vào văn bản để bạn có thể xử lý nó, sử dụng nó trên dòng lệnh Linux:

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

(gọi nó từ Python sử dụng tiến trình con nếu bạn muốn tự động hoá nó).

Nó sẽ tạo tệp văn bản mà bạn có thể tải đơn giản vào python.

(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

Không sử dụng '|'. Có một 'hoặc' cho điều đó. – FunkySayu

0

Có một mô-đun python gọi 'docx' mà bạn có thể sử dụng để đọc .docx tập tin. Bạn sẽ không thể đọc .doc dù nó gần như lỗi thời.

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

Bạn có thể tìm thấy số Here trên Pypi.

Các vấn đề liên quan