[英]Doc, rtf and txt reader in python
像csv.reader()
一樣,是否還有其他功能可以讀取Python中的.rtf
, .txt
和.doc
文件?
嘗試為單詞和編寫者文檔做這種簡單的事情時,我感到非常頭疼。
有一個簡單的解決方案:在命令行上調用openoffice將目標文檔轉換為文本,然后將文本加載到Python中。
我嘗試的其他轉換工具產生的輸出不可靠,而其他Python oOo庫則過於復雜。
如果您只是想獲取文本以便進行處理,請在linux命令行上使用它:
soffice --headless --convert-to txt:Text /path_to/document_to_convert.doc
(如果要自動執行,請使用子流程從Python調用它)。
它將創建文本文件,您可以將其簡單地加載到python中。
( 信用 )
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()
csv
是一種特定格式,因此您需要“解析器”才能讀取它。 正如您所提到的,這就是csv模塊所提供的。 文本文件(通常帶有.txt
后綴)沒有任何固定的“格式”,因此您可以在open
它們后閱讀它們(Jesse的答案提供了詳細信息)。 CSV文件通常是文本文件,因此您的區分不是很准確。
至於RTF,有很多。 有關詳細信息,請參見此答案 。 傑西提到的PyRTF東西似乎最受歡迎。
Microsoft Word文檔文件(通常帶有.doc
后綴)是另一種野獸,因為該格式是專有的。 我對Python轉換器沒有太多經驗,但是有一些命令行轉換器(如wvHTML)可以做得不錯。 這個問題討論了很多。 也可以選擇讓MS-Word自己為您完成此操作。 提到了像Jesse這樣的COM接口。
有一個名為“ docx”的python模塊 ,可用於讀取.docx文件。 盡管您現在無法閱讀.doc,因為它已經過時了。
from docx import Document
doc = Document(filepath)
# Reading Data
data = doc.paragraphs
tables = doc.tables
你可以找到它這里 PyPI上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.