You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何openpyxl加载文件需用绝对路径?本地路径报错求助

问题解答

其他人完全可以通过本地相对路径正常打开xlsx文件,你的情况属于个例,核心原因大概率是当前Python运行环境的工作目录异常,或者脚本执行路径的问题,和文件本身、openpyxl的通用用法无关。

具体分析:

  • 工作目录不匹配:你以为脚本的当前工作目录是文件所在的目录,但实际运行时可能不是(比如VS Code的工作目录被修改、脚本从其他路径启动)。这时用相对路径'output.xlsx'会指向错误的位置,读取到空内容或非目标文件,触发badzipfile错误。而你用绝对路径指定后,直接定位到了正确的文件,所以能正常加载。
  • 多余的open操作:你现在的代码里open(os.path.join(path, 'output.xlsx'), 'r')这步完全没必要,openpyxl的load_workbook可以直接接收绝对路径字符串,改成wb = load_workbook(os.path.join(path, 'output.xlsx'))就能正常运行。
  • 环境或权限小概率问题:比如文件曾被异常锁定,导致相对路径读取时内容异常,但你用open(filename)能正常读取,这个可能性很低。

验证方法:

在脚本开头添加一行代码打印当前工作目录:

import os
print(os.getcwd())

如果输出的路径不是C:/Users/BigGuy/Documents/VSCode/Project/,就说明工作目录不对,要么用os.chdir("C:/Users/BigGuy/Documents/VSCode/Project/")切换到目标目录,要么继续使用绝对路径。

内容的提问来源于stack exchange,提问作者user3451478

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 06:07:13