羽糯 2024-04-13 17:39 采纳率: 0%
浏览 12

python-docx找不到文件

pythondocx的读取读不到文件说找不到
我百度了半天也没找到问题感觉脑子炸了
不知道是不是哪里细节出了问题
文件是在的 路径也是os.path拼的
就这十几行代码 其他都删了防止干扰
权限也查了没问题 也没打开文件妨碍运行

img

  • 写回答

6条回答 默认 最新

  • 关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    好的,针对你的问题,我可以提供以下解决方案:

    1. 确认文件路径是否正确:使用os.path拼接路径时,注意要加上文件名及扩展名,而且还要保证路径的斜杠方向正确(使用/或\),建议使用os.path.join()函数来拼接。

    2. 检查是否有文件读取权限:在文件路径添加时,注意要添加读取权限r。如:docx.Document(r'文件路径')。

    3. 检查文件编码是否正确:docx.Document()方法默认使用utf-8编码,如果文件是gbk或其他编码方式,会导致读取失败。可以使用with open()语句来显式指定编码,如: with open('文件路径', 'rb') as f: document = Document(f, 'gbk')。

    4. 尝试使用绝对路径或相对路径:如果使用os.path拼接路径时出现问题,可以尝试直接使用绝对路径或相对路径(如./file.docx)来读取文件。

    下面是代码示例:

    import os
    from docx import Document
    
    # 构建文件路径
    file_path = os.path.join(os.getcwd(), 'file.docx')
    # 或者 file_path = os.path.abspath('file.docx')
    # 或者 file_path = './file.docx'
    
    # 检查文件路径是否正确
    if not os.path.exists(file_path):
        raise FileNotFoundError(f'文件{file_path}不存在')
    
    # 检查文件读取权限
    if not os.access(file_path, os.R_OK):
        raise PermissionError(f'文件{file_path}无读取权限')
    
    # 使用docx读取文件
    with open(file_path, 'rb') as f:
        document = Document(f)
    
    评论

报告相同问题?

问题事件

  • 修改了问题 4月13日
  • 创建了问题 4月13日

悬赏问题

  • ¥15 Qt4代码实现下面的界面
  • ¥15 prism提示我reinstall prism 如何解决
  • ¥15 asp.core 权限控制怎么做,需要控制到每个方法
  • ¥20 while循环中OLED显示中断中的数据不正确
  • ¥15 这个视频里的stm32f4代码是怎么写的
  • ¥15 JNA调用DLL报堆栈溢出错误(0xC00000FD)
  • ¥15 请教SGeMs软件的使用
  • ¥15 自己用vb.net编写了一个dll文件,如何只给授权的用户使用这个dll文件进行打包编译,未授权用户不能进行打包编译操作?
  • ¥50 深度学习运行代码直接中断
  • ¥20 需要完整的共散射点成像代码