openpyxl创建xlsx报[Errno 13]权限拒绝,仅调试模式可正常运行
openpyxl写入xlsx权限拒绝问题排查与解决
可能原因
- PyCharm主进程未以管理员身份启动:你虽是本机管理员,但普通启动的PyCharm进程权限受限,而调试模式会自动提升权限,所以调试能成功。
- 当前工作目录权限不足:
os.getcwd()指向的目录对PyCharm普通进程没有写入权限,其他格式文件因为写入机制不同未触发权限问题。 - openpyxl临时文件机制冲突:保存xlsx时openpyxl会生成临时文件,若临时目录权限不足或残留临时文件未清理,会引发权限错误(其他格式无此流程)。
解决办法
- 右键点击PyCharm图标,选择「以管理员身份运行」,再执行代码。
- 更换保存路径到权限充足的目录,比如桌面,示例代码:
import os import openpyxl wb = openpyxl.workbook.Workbook() ws = wb.active ws.title = 'Title' ws.append(["TITLE"]) # 保存到桌面路径 save_path = os.path.join(os.path.expanduser("~"), "Desktop", "Example.xlsx") wb.save(filename=save_path) wb.close() - 清理系统临时目录(Windows下为
C:\Users\[你的用户名]\AppData\Local\Temp)中与openpyxl相关的临时文件,再重新运行代码。 - 检查杀毒软件是否拦截了PyCharm写入xlsx文件,临时关闭后测试,正常则将PyCharm和Python进程加入信任列表。
内容的提问来源于stack exchange,提问作者rodoso
相关产品推荐
相关产品推荐

