gpt4 book ai didi

python - 如何使用 Python 从 .doc 文件中检索纯文本?

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:43 25 4
gpt4 key购买 nike

如何从 .doc 文件中提取纯文本? (MSDoc 97-03) 我可以从 .docx 中提取纯文本,但不能从 .doc 中提取纯文本

我有一个几乎可以工作的 .doc 代码,它是这样的

        if file.endswith('.doc'):
app = win32com.client.Dispatch('Word.Application')
doc = app.Documents.Open(fullpath)
docText = (doc.Content)
print docText
app.Quit()

问题是,每当我运行这段代码时,我都会得到纯文本和如下错误:

这是一个测试代码的测试文件:

Traceback (most recent call last):
File "C:\Users\IdaLim\Desktop\MyTestCode\FileIO.py", line 76, in <module> doc =

app.Documents.Open(fullpath) File "C:\Python27\lib\site-
packages\win32com\client\dynamic.py", line 522, in __getattr__ raise
AttributeError("%s.%s"% (self._username_, attr)) AttributeError: Word.Application.Documents

最重要的是,如果纯文本包含非字母字符,如“!@#$%”,程序将不会输出纯文本,并给出一个错误,指出不兼容的 Unicode 或其他内容。

您是否知道任何功能代码可以几乎完美地从 .doc 文件中检索纯文本?

最佳答案

嗯,我找到了这个解决方案的解决方法。

我成功地将 .doc 文件转换为 .txt 文件,所有特殊字符和编码都转换为 .txt 格式。代码如下。我想你可以做的(如果你需要)是读取新创建的文本文件,然后将它存储在你的 python 程序的变量中。从那里你可以用它做任何你想做的事情。

import win32com.client 
import os
import re
rootdir ='C:\Users\IdaLim\Desktop\docs'
try:
app = win32com.client.Dispatch('Word.Application')
app.Visible = True
for subdir, dirs, files in os.walk(rootdir):
for file in files:
fullpath = os.path.join(*[subdir, file])
if file.endswith(".doc"):
out_name = file.replace("doc", r"txt")
in_file = os.path.abspath(rootdir + "\\" + file)
out_file = os.path.abspath(rootdir + "\\" + out_name)
doc = app.Documents.Open(in_file)
content = doc.Content.Text
print 'Exporting', out_file
doc.SaveAs(out_file, FileFormat=7)
doc.Close()
except Exception, e:
print e
finally:
app.Quit()

关于python - 如何使用 Python 从 .doc 文件中检索纯文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24880733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com