在 python-docx 中的 windows 上找不到包错误?
Package not found error on windows in python-docx?
当我尝试从我的工作目录访问文件时出现错误。这不是@dsphoebe 的问题的重复,因为我尝试打开的文件肯定是 .docx 文件,无论出于何种原因,我都无法打开它。
rootdir = 'C:\Users\me\Documents\Python\mydocs\'
for subdir, dirs, files in os.walk(rootdir):
for file in files:
print(file) #prints all word docs in my folder, just like I want
现在,当我用创建 docx 的语句替换打印语句时 object,
rootdir = 'C:\Users\me\Documents\Python\mydocs\'
for subdir, dirs, files in os.walk(rootdir):
for file in files:
doc = docx.Document(os.path.join(rootdir, file))
...
#continuing with what I wanted to do w/ the documents...
Error: "Package not found at '%s'" % pkg_file
docx.opc.exceptions.PackageNotFoundError: Package not found at 'my doc.docx'
现在,在那个 mydocs 文件夹中,我的 doc.docx 是正确的标题,它肯定是一个 .docx 文件。这个文件的标题由2个单词和一个space组成(即我的doc.docx)。但是转换为类型 'Document' object works 对于同一个文件夹中的另一个 word 文档只有 ONE word !
这个有效:
rootdir = 'C:\Users\me\Documents\Python\mydocs\'
doc = docx.Document(os.path.join(rootdir, "Access.docx"))
Exited with code = 0
但这不是:
rootdir = 'C:\Users\me\Documents\Python\mydocs\'
doc = docx.Document(os.path.join(rootdir, "Able2Extract Professional.docx"))
Exited with code=1
所以 two words.docx
行不通,但 oneword.docx
行。非常混淆。有人知道如何诊断这个问题吗?
您在哪里使用 rootdir
变量?
如果 docx
只是试图通过将该字符串与当前目录连接来打开 'my doc.docx',它可能无法正确转义文件名中的 space 字符。
尝试使用 os.path.join()
:
import os.path
rootdir = 'C:\Users\me\Documents\Python\mydocs\'
doc = docx.Document(os.path.join(rootdir, "my doc.docx"))
Eric 的回答是完全正确的,只是想说一下我有同样的经历,错误是我已经打开了 word 文档。
解决方法:关闭word文档,如果要解析阅读,再打开一份。
由于路径错误,我收到了这条错误消息。 (缺少/)
当我尝试从我的工作目录访问文件时出现错误。这不是@dsphoebe 的问题的重复,因为我尝试打开的文件肯定是 .docx 文件,无论出于何种原因,我都无法打开它。
rootdir = 'C:\Users\me\Documents\Python\mydocs\'
for subdir, dirs, files in os.walk(rootdir):
for file in files:
print(file) #prints all word docs in my folder, just like I want
现在,当我用创建 docx 的语句替换打印语句时 object,
rootdir = 'C:\Users\me\Documents\Python\mydocs\'
for subdir, dirs, files in os.walk(rootdir):
for file in files:
doc = docx.Document(os.path.join(rootdir, file))
...
#continuing with what I wanted to do w/ the documents...
Error: "Package not found at '%s'" % pkg_file
docx.opc.exceptions.PackageNotFoundError: Package not found at 'my doc.docx'
现在,在那个 mydocs 文件夹中,我的 doc.docx 是正确的标题,它肯定是一个 .docx 文件。这个文件的标题由2个单词和一个space组成(即我的doc.docx)。但是转换为类型 'Document' object works 对于同一个文件夹中的另一个 word 文档只有 ONE word !
这个有效:
rootdir = 'C:\Users\me\Documents\Python\mydocs\'
doc = docx.Document(os.path.join(rootdir, "Access.docx"))
Exited with code = 0
但这不是:
rootdir = 'C:\Users\me\Documents\Python\mydocs\'
doc = docx.Document(os.path.join(rootdir, "Able2Extract Professional.docx"))
Exited with code=1
所以 two words.docx
行不通,但 oneword.docx
行。非常混淆。有人知道如何诊断这个问题吗?
您在哪里使用 rootdir
变量?
如果 docx
只是试图通过将该字符串与当前目录连接来打开 'my doc.docx',它可能无法正确转义文件名中的 space 字符。
尝试使用 os.path.join()
:
import os.path
rootdir = 'C:\Users\me\Documents\Python\mydocs\'
doc = docx.Document(os.path.join(rootdir, "my doc.docx"))
Eric 的回答是完全正确的,只是想说一下我有同样的经历,错误是我已经打开了 word 文档。
解决方法:关闭word文档,如果要解析阅读,再打开一份。
由于路径错误,我收到了这条错误消息。 (缺少/)