python - 如何使用 python 而不是 Docx 读取 doc 文件

标签 python doc

我正在尝试用 python 读取 .doc 文件,但由于操作系统依赖性,我不想使用 texttract 。另外,我不想使用 docx2txt ,因为据我了解,它不读取 .doc ,而只读取 .docx 文件。

是否有类似的模块,或者甚至可以在没有库支持的情况下实现?

最佳答案

一种方法是使用 Python 的 win32com 模块。 win32 可以使用 pip 命令 pip install pywin32 下载。这可以读取 .doc 文档并返回文本。试试这个:

import win32com.client

word = win32com.client.Dispatch("Word.Application")
word.visible = False
wb = word.Documents.Open(r"C:\Users\eesam\OneDrive\Documents\Eesa\Paper.doc")
doc = word.ActiveDocument
print(doc.Range().Text)

另一种方法是使用 BeautifulSoup,但这种方法可能会有点问题:

from bs4 import BeautifulSoup as bs
soup = bs(open(r"C:\Users\eesam\OneDrive\Documents\Eesa\Paper.doc", encoding="ISO-8859-1").read())
[s.extract() for s in soup(['style', 'script'])]
tmpText = soup.get_text()
text = "".join("".join(tmpText.split('\t')).split('\n')).strip()
print(text)

关于python - 如何使用 python 而不是 Docx 读取 doc 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65774929/

相关文章:

java - 无法使用 docx4j 设置单元格宽度

java - Swagger 启动 tomcat 时抛出 UncheckedExecutionException

python - 相干图空白 - nan 的相干值

python - 我怎样才能打印这个?

python - 为什么 ElementTree.iterparse() 引发 ParseError?

python - 如何在 apscheduler 的事件作业中添加失火宽限期和合并?

python - 在python中从sql中提取数据(每秒一次)

python - 更改输入文件的路径,comtypes

windows - 从命令行将 DOC 转换为 PDF

java - 更改CharacterRun的字体类型