簡體   English   中英

python中的doc,rtf和txt閱讀器

[英]Doc, rtf and txt reader in python

csv.reader()一樣,是否還有其他功能可以讀取Python中的.rtf.txt.doc文件?

您可以使用閱讀文本文件

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

嘗試使用PyRTF獲取RTF文件。 我認為除非您在Windows上,否則讀取MS Word .doc文件的可能性很小,除非您可以使用某些本機MS接口讀取這些文件。 本文聲稱將展示如何編寫與Word交互的腳本。

嘗試為單詞和編寫者文檔做這種簡單的事情時,我感到非常頭疼。

有一個簡單的解決方案:在命令行上調用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM