找不到文件,但文件明明在的
本帖最后由 YouCam 于 2023-6-23 15:08 编辑以下是源代码:
import openpyxl
import docx
the_doc = docx.Document(r"C:\Users\Qingxi\Desktop\sentence.docx")
the_sheet = openpyxl.load_workbook('C:/Users/Qingxi/Desktop/word-list.xlsx').active
the_list = []
for i in range(1, int(the_sheet.max_row) + 1):
smalllist = []
smalllist.append(the_sheet.cell(row = i, column = 1).value)
smalllist.append(the_sheet.cell(row = i, column = 2).value)
the_list.append(smalllist)
words = []
count = 1
for i in the_list:
if i != None and i in i:
sentence = i.replace(i,'____')
words.append(i)
if words.count > 3:
words.remove()
the_doc.add_paragraph("Can you finish this sentence? # DAY " + str(count))
the_doc.add_paragraph(sentence)
the_doc.add_paragraph(' '.join(words))
the_doc.add_paragraph()
count += 1
the_doc.save()
以下是报错提示:
PS F:\Code\Python> & C:/Users/Qingxi/AppData/Local/Programs/Python/Python311/python.exe f:/Code/Python/Docx.py
Traceback (most recent call last):
File "f:\Code\Python\Docx.py", line 4, in <module>
the_doc = docx.Document(r"C:\Users\Qingxi\Desktop\sentence.docx")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Qingxi\AppData\Local\Programs\Python\Python311\Lib\site-packages\docx\api.py", line 25, in Document
document_part = Package.open(docx).main_document_part
^^^^^^^^^^^^^^^^^^
File "C:\Users\Qingxi\AppData\Local\Programs\Python\Python311\Lib\site-packages\docx\opc\package.py", line 128, in open
pkg_reader = PackageReader.from_file(pkg_file)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Qingxi\AppData\Local\Programs\Python\Python311\Lib\site-packages\docx\opc\pkgreader.py", line 32, in from_file
phys_reader = PhysPkgReader(pkg_file)
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Qingxi\AppData\Local\Programs\Python\Python311\Lib\site-packages\docx\opc\phys_pkg.py", line 30, in __new__
raise PackageNotFoundError(
docx.opc.exceptions.PackageNotFoundError: Package not found at 'C:\Users\Qingxi\Desktop\sentence.docx'
PS F:\Code\Python>
经过众多网友的热心帮助,我在顶楼说明一下情况:
1. 我能确保路径是正确的,在桌面文件夹下确实有一个名为sentence.docx的文件
2. 文件扩展名是一致的,和代码中的 sentence.docx一致
3. 在填写路径时我加了 r 在路径前面
4. 当前电脑是Windows 11 系统,使用的编辑器是VS code,并授予了Trust this folder的权限
5. 此docx文档是使用Microsoft 365 创建的,并非offcie,Microsoft 365没有损坏,可以打开其他docx文件
6. 此文档从未设置过密码保护
7. 我的python 版本是 3.11.3,docx 扩展库版本 0.2.4,python_docx版本 0.8.11, openpyxl 版本 3.1.2
8. 此sentence.docx无程序占用
有没有可能你的文件是doc后缀的? isdkz 发表于 2023-6-23 14:18
有没有可能你的文件是doc后缀的?
不可能,我发贴之前检查过了,是.docx后缀文件 试试转义? 错误消息表明无法找到文件 "C:\Users\Qingxi\Desktop\sentence.docx"。以下是您可以检查的几个步骤来解决这个问题:
1. 验证文件路径:确保文件 "sentence.docx" 存在于指定的位置。仔细检查路径,确保没有拼写错误或缺失文件夹。
2. 检查文件扩展名:确保文件具有 ".docx" 扩展名。错误消息特别提到了 "PackageNotFoundError",这表明提供的文件可能不是有效的 Word 文档。
3. 文件权限:确保您具有访问该文件的必要权限。如果文件位于受限制的文件夹中,可能会遇到打开文件的问题。
通过解决这些问题,您应该能够解决 "PackageNotFoundError" 错误,并成功加载 Word 文档。 歌者文明清理员 发表于 2023-6-23 14:29
哎呀,你怎么就不信我呢。我更新了帖子,你可以看 无标题.png,确实是docx文件 liuhongrun2022 发表于 2023-6-23 14:24
试试转义?
能否烦请问如何使用转义?能否给个教程链接,谢谢 YouCam 发表于 2023-6-23 14:42
哎呀,你怎么就不信我呢。我更新了帖子,你可以看 无标题.png,确实是docx文件
截图C:/users 歌者文明清理员 发表于 2023-6-23 14:43
截图C:/users
好的,已截图在顶楼 YouCam 发表于 2023-6-23 14:47
好的,已截图在顶楼
先回到桌面,按f5 我觉得你的文件和 Python 可以找到的路径不一样。 陶远航 发表于 2023-6-23 14:40
错误消息表明无法找到文件 "C:%users\Qingxi\Desktop\sentence.docx"。以下是您可以检查的几个步骤来解决这 ...
谢谢回复!
文件路径确实没错,扩展名也没错,至于文件是否处于受限制文件夹中,我不太清楚。但我在其他盘重新新建docx文档,重新试了一下依旧不行 YouCam 发表于 2023-6-23 14:43
能否烦请问如何使用转义?能否给个教程链接,谢谢
路径前面加个r
import openpyxl
import docx
the_doc = docx.Document(r"C:\Users\Qingxi\Desktop\sentence.docx")
the_sheet = openpyxl.load_workbook(r'C:/Users/Qingxi/Desktop/word-list.xlsx').active
the_list = []
for i in range(1, int(the_sheet.max_row) + 1):
smalllist = []
smalllist.append(the_sheet.cell(row = i, column = 1).value)
smalllist.append(the_sheet.cell(row = i, column = 2).value)
the_list.append(smalllist)
words = []
count = 1
for i in the_list:
if i != None and i in i:
sentence = i.replace(i,'____')
words.append(i)
if words.count > 3:
words.remove()
the_doc.add_paragraph("Can you finish this sentence? # DAY " + str(count))
the_doc.add_paragraph(sentence)
the_doc.add_paragraph(' '.join(words))
the_doc.add_paragraph()
count += 1
the_doc.save() sfqxx 发表于 2023-6-23 14:49
我觉得你的文件和 Python 可以找到的路径不一样。
噢?还有这回事?难道是我和的编辑器有关? 歌者文明清理员 发表于 2023-6-23 14:48
先回到桌面,按f5
不是,按F5 刷新起什么作用吗?我按了再次运行还是这样子报错呢 YouCam 发表于 2023-6-23 14:49
谢谢回复!
文件路径确实没错,扩展名也没错,至于文件是否处于受限制文件夹中,我不太清楚。但我在其他 ...
如果您确认文件路径和文件扩展名都正确,并且尝试在其他盘符上创建新的 `.docx` 文档仍然无法解决问题,那么可能存在其他原因导致无法打开文件。您可以尝试以下方法来进一步排查问题:
1. 检查文件是否已被其他程序占用:确保没有其他程序正在使用该文件。关闭任何可能正在访问该文件的程序,例如 Microsoft Word 等。
2. 检查文件是否已被损坏:尝试打开其他 `.docx` 文件,看是否能够正常打开。如果其他文件也无法打开,可能是您的 Word 安装存在问题,您可以尝试重新安装 Microsoft Office 或尝试在其他计算机上打开文件。
3. 检查文档是否具有密码保护:如果文档被设置了密码保护,您需要提供正确的密码才能打开文件。确保您知道文件是否受到密码保护,并尝试使用正确的密码打开文件。
如果上述方法仍无法解决问题,建议您将问题描述更详细,包括您使用的操作系统、Python 版本以及任何相关的错误消息,这样可以更好地帮助我们排查问题。 YouCam 发表于 2023-6-23 14:52
不是,按F5 刷新起什么作用吗?我按了再次运行还是这样子报错呢
有时候你会卡出windows的bug,明明文件不在却能看见 陶远航 发表于 2023-6-23 14:52
如果您确认文件路径和文件扩展名都正确,并且尝试在其他盘符上创建新的 `.docx` 文档仍然无法解决问题, ...
1. 我能确保路径是正确的,在桌面文件夹下确实有一个名为sentence.docx的文件
2. 文件扩展名是一致的,和代码中的 sentence.docx一致
3. 在填写路径是 我加了 r 在路径前面
4. 当前电脑是Windows 11 系统,使用的编辑器是VS code,并授予了Trust this folder的权限
5. 此docx文档是使用Microsoft 365 创建的,并非offcie,Microsoft 365没有损坏,可以打开其他docx文件
6. 此文档从未设置过密码保护
7. 我的python 版本是 3.11.3,docx 扩展库版本 0.2.4,python_docx版本 0.8.11, openpyxl 版本 3.1.2
8. 此sentence.docx无程序占用
YouCam 发表于 2023-6-23 15:07
1. 我能确保路径是正确的,在桌面文件夹下确实有一个名为sentence.docx的文件
2. 文件扩展名是一致的, ...
非常抱歉您遇到的问题还没有解决。根据您提供的信息,路径、文件扩展名和文件访问权限都似乎是正确的,并且您的环境配置也看起来没有问题。在这种情况下,以下是一些建议和可能的解决方案:
1. 检查库版本兼容性:请确保您使用的库版本与您的 Python 版本和其他库的兼容性。尽管您提到了所使用的库的版本,但仍然有可能存在某些不兼容的情况。您可以尝试降级一些库的版本或升级到最新版本来解决潜在的兼容性问题。
2. 尝试重启计算机:有时在使用某些库时,特别是在 Windows 系统上,可能需要重启计算机来解决一些文件访问问题。尝试重新启动计算机后再次运行您的代码。
3. 检查文件完整性:尝试通过复制和粘贴操作,将 "sentence.docx" 文件从桌面文件夹移动到其他位置,例如您的用户文件夹下。然后,尝试在新的位置打开文件并运行您的代码,看看是否能够正常工作。这有助于确定文件是否存在某些权限或路径相关的问题。
4. 尝试使用绝对路径:将文件路径改为使用绝对路径来加载 "sentence.docx" 文件。例如,使用完整的文件路径(包括驱动器名称,如 "C:\Users\Qingxi\Desktop\sentence.docx")来加载文件,而不仅仅是相对于桌面的路径。
如果尝试了上述方法仍然无法解决问题,请提供任何相关的错误消息或警告消息,这样可以更好地帮助我们找到问题的根本原因。
页:
[1]
2