当前位置: 首页 > 知识库问答 >
问题:

python - 请求帮忙解决Python编程中提示路径错误文档不能写入的问题?

盖斌
2023-12-26

我想实现的功能是:将n张图片拖入固定文件夹中后自动用word排版,word标题为“照片”,每页排版两张照片,每张照片下边有序号和“备注:”

import osfrom PIL import Imagefrom docx import Documentfrom docx.shared import Inchesfrom docx.enum.text import WD_PARAGRAPH_ALIGNMENTfrom docx.oxml import OxmlElementdef create_word_document(image_folder, output_path):    # 获取图片文件列表    image_files = [f for f in os.listdir(image_folder) if f.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp'))]    if not image_files:        print("未找到任何图片文件。")        return    # 创建Word文档    doc = Document()    doc.add_heading('照片', level=1).alignment = WD_PARAGRAPH_ALIGNMENT.CENTER    # 每页排版两张照片    photos_per_page = 2    for i, image_file in enumerate(image_files, start=1):        if i % photos_per_page == 1:            # 添加新的一页            section = doc.sections[-1]            footer = section.footer            footer.paragraphs[0].clear()  # 清除页脚原有内容            footer.paragraphs[0].add_run(f"第 {i // photos_per_page + 1} 页").alignment = WD_PARAGRAPH_ALIGNMENT.CENTER            doc.add_page_break()        # 添加图片和备注        img_path = os.path.join(image_folder, image_file)        img = Image.open(img_path)        doc.add_picture(img_path, width=Inches(3.0))        doc.add_paragraph(f"序号:{i}")        doc.add_paragraph("备注:")    # 保存Word文档    doc.save(output_path)    print(f"Word文档已保存至: {output_path}")if __name__ == "__main__":    # 指定图片文件夹和输出Word文档路径    image_folder_path = "d:ANZHUANG/PYTHON/IMA"    output_word_path = "d:ANZHUANG/PYTHON/output/"    create_word_document(image_folder_path, output_word_path)

为什么运行的时候老是出现写入路径错误

D:\ANZHUANG\PYTHON\python.exe C:/Users/admin/PycharmProjects/pythonProject/lianxi3.pyTraceback (most recent call last):  File "C:\Users\admin\PycharmProjects\pythonProject\lianxi3.py", line 51, in <module>    create_word_document(image_folder_path, output_word_path)  File "C:\Users\admin\PycharmProjects\pythonProject\lianxi3.py", line 40, in create_word_document    doc.save(output_path)  File "D:\ANZHUANG\PYTHON\lib\site-packages\docx\document.py", line 151, in save    self._part.save(path_or_stream)  File "D:\ANZHUANG\PYTHON\lib\site-packages\docx\parts\document.py", line 106, in save    self.package.save(path_or_stream)  File "D:\ANZHUANG\PYTHON\lib\site-packages\docx\opc\package.py", line 151, in save    PackageWriter.write(pkg_file, self.rels, self.parts)  File "D:\ANZHUANG\PYTHON\lib\site-packages\docx\opc\pkgwriter.py", line 27, in write    phys_writer = PhysPkgWriter(pkg_file)  File "D:\ANZHUANG\PYTHON\lib\site-packages\docx\opc\phys_pkg.py", line 109, in __init__    self._zipf = ZipFile(pkg_file, "w", compression=ZIP_DEFLATED)  File "D:\ANZHUANG\PYTHON\lib\zipfile.py", line 1239, in __init__    self.fp = io.open(file, filemode)PermissionError: [Errno 13] Permission denied: 'd:ANZHUANG/PYTHON/output/'

通过提高管理员权限试图解决不能写入给定路径的问题,但是还是出现结果中的提示。
希望大神帮忙指点一下,如何实现既定的功能。

共有3个答案

农飞翔
2023-12-26

放linux环境用root权限执行试试

晁国发
2023-12-26

盘符后面的路径分隔符漏了, d:/ANZHUANG/PYTHON/output/

贡俊
2023-12-26

你的问题是一个很常见的文件权限问题。当你试图在没有写入权限的位置创建或保存文件时,Python会抛出一个PermissionError。在你的情况下,问题出在'd:ANZHUANG/PYTHON/output/'这个路径上,Python无法写入这个路径。

解决这个问题的方法有很多种,下面是一些可能的解决方案:

  1. 更改文件或文件夹的权限:你可以尝试更改'd:ANZHUANG/PYTHON/output/'这个路径的权限,使其对你的Python程序开放写入权限。在Windows系统中,你可以右键点击文件夹,选择"属性",然后在"安全"选项卡中更改权限。
  2. 选择一个有写入权限的位置:你也可以选择一个你的Python程序有写入权限的位置来保存Word文档。例如,你可以选择在用户的主目录下创建一个新的文件夹来保存Word文档。
  3. 以管理员权限运行Python程序:你可以尝试以管理员权限运行你的Python程序。在Windows系统中,你可以右键点击Python程序,然后选择"以管理员身份运行"。

如果你仍然遇到问题,请提供更多的信息,我将很乐意进一步帮助你。

 类似资料:
  • opendkim使用命令systemctl restart opendkim后,使用systemctl status opendkim查看后 。发先opendkim状态时dead状态。不管我试多少次,就是还是这个样子 使用postfix发送邮件后 提示也是这样的。 我也查了很多资料,但基本都是说没启动,但我使用了systemctl stop/start/restart opendkim我都试过了,

  • 运行python版本3.9.1在arch linux与OpenSSL版本1.1.1i和pyopenssl版本1.1.1i我得到以下错误时,尝试使用https代理与请求模块: 我正在运行的代码是: 无论我尝试什么https代理,我都会得到相同的错误。我还重新安装了openssl和python,没有任何更改。有什么建议吗?

  • 本文向大家介绍解决python ogr shp字段写入中文乱码的问题,包括了解决python ogr shp字段写入中文乱码的问题的使用技巧和注意事项,需要的朋友参考一下 首先,先确认一下你的字段值是不是乱码,如果是,按照以下方法: 我的字段值是来自于一个geojson字符串,我在对它解析时做了如下处理: 这样即可消除字段值中的中文乱码。 字段值没有乱码了,可是这样写入shp,shp中会出现乱码,

  • Pycharm的控制台复制粘贴剪切与平常无异,VScode就很麻烦,文本界面是正常的,但是终端里面就得Ctrl+Shift+C、Ctrl+Shift+V,还不能剪切,光标移动也得按住Alt。如果输入错误,还得长按删除从最后一直删除到最前。 同时运行多个Python程序还得新建终端,然后输入python目录和要运行的程序目录,Pycham直接Ctrl+Shift+F10, 感觉除了省内存,没有比Py

  • 本文向大家介绍解决MYSQL连接端口被占引入文件路径错误的问题,包括了解决MYSQL连接端口被占引入文件路径错误的问题的使用技巧和注意事项,需要的朋友参考一下 今天早上打算本地win7机器上用Wampserver搭建PHP环境,把自己的小程序配置上去。下载最新的wampserver 3.0.6版本安装后,发现mysql一直无法运行,以为是wampserver版本问题,随后又下载了相关2.4,2.5