使用win32读取.doc文件com.client.Dispatch公司()

2024-10-01 11:28:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用以下方法将.doc文件的文本读入python:

doc_ex = root_folder+"/"+"GS-35F-309AA_A02 -SOW microsoft Dynamic 365.doc"
word = win32com.client.Dispatch("Word.Application")
word.visible = False
wb = word.Documents.Open(doc_ex)
doc = word.ActiveDocument
docText = doc.Content.Text
print(docText)

我收到一条错误信息:

com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Word', "Sorry, we couldn't find your file. Was it moved, renamed, or deleted?\r (C:\\//Users/MBS/TheFolder_MS...)", 'wdmain11.chm', 24654, -2146823114), None)

看起来python正在用我提供的路径做一些奇怪的事情。这就是doc\u ex的路径:

doc_ex
Out[12]: 'C:/Users/MBS/TheFolder_MS/Work/IT_Contracts/MIke_Clean/GS-35F-309AA_A02 -SOW microsoft Dynamic 365.doc'

系统将\//东西添加到路径中,当然找不到它,因为那不是路径。我做错什么了?提前谢谢。你知道吗

另外,不知道这是否重要,但根目录\u文件夹声明如下:

root_folder = r"C:/Users/MBS/TheFolder_MS/Work/IT_Contracts/MIke_Clean"

Tags: 路径gsdocdynamicrootfolderusersmicrosoft
2条回答

下面的工作。我不得不反转斜杠的方向,在最后加上一个双斜杠。你知道吗

root_folder2 = r"C:\Users\MBS\TheFolder_MS\Work\IT_Contracts\MIke_Clean\\"
doc_ex = os.path.join(root_folder2, "GS-35F-309AA_A02 -SOW microsoft Dynamic 365.doc")
word = win32com.client.Dispatch("Word.Application")
word.visible = False
wb = word.Documents.Open(doc_ex)
doc = word.ActiveDocument
docText = doc.Content.Text
print(docText)

您可能想改用os.path.join()。你知道吗

例如

import os
doc_ex = os.path.join('C:', os.sep, 'Users', 'MBS', 'TheFolder_MS', 'Work', 'IT_Contracts', 'MIke_Clean', "GS-35F-309AA_A02 -SOW microsoft Dynamic 365.doc")

如果要确保Python找到可以添加的文件:

if os.path.exists(doc_ex):
    print('%s exists' % doc_ex)

相关问题 更多 >