gpt4 book ai didi

python - 在 python-docx 中的 Windows 上找不到包错误?

转载 作者:太空宇宙 更新时间:2023-11-04 00:48:50 26 4
gpt4 key购买 nike

当我尝试从我的工作目录访问文件时出现错误。这不是@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 对象的语句替换打印语句时,

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 个单词 和一个空格组成(即我的doc.docx)。但是转换为类型“文档”对象适用于同一文件夹中的另一个单词文档,该文件夹只有一个单词!

这个有效:

    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 只是试图通过将该字符串与当前目录连接来打开“我的 doc.docx”,它可能无法正确转义文件名中的空格字符。

尝试使用 os.path.join():

import os.path
rootdir = 'C:\\Users\\me\\Documents\\Python\\mydocs\\'
doc = docx.Document(os.path.join(rootdir, "my doc.docx"))

关于python - 在 python-docx 中的 Windows 上找不到包错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38060809/

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