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

Python写入CSV文件触发PermissionError [Errno 13]权限问题求助

解决Windows下Python写入CSV的PermissionError问题

代码里的明显错误

  • 你使用了with open(...) as tally_file:上下文管理器,它会自动处理文件的关闭操作,不需要手动调用tally_file.close();而且代码里的csv_file.close()完全多余,因为你根本没定义csv_file变量,这会触发额外的未定义错误。

权限错误的核心解决方向

1. 关闭占用文件的其他程序

Windows下如果game_tallies.csv正被Excel、记事本或其他程序打开,Python会无法写入该文件,直接触发权限拒绝。先关闭所有打开这个文件的程序,再重新运行脚本。

2. 更换写入路径到用户专属目录

C盘根目录下的文件夹(比如c:\smith\python)通常需要管理员权限才能写入,对新手来说最稳妥的方式是把文件放到用户自己的文档目录,示例:

file_name = r'C:\Users\你的用户名\Documents\game_tallies.csv'

替换成你自己的Windows用户名即可,这个路径默认拥有写入权限,无需额外设置。

3. 检查文件夹与文件的权限设置

右键点击目标文件夹(c:\smith\python)→ 属性 → 安全选项卡,确认当前登录用户拥有写入权限;如果是已存在的CSV文件,同样右键文件→属性→安全,检查写入权限是否开启。

4. 临时方案:以管理员身份运行脚本

右键点击你的Python脚本文件,选择“以管理员身份运行”,如果这能解决问题,说明确实是系统权限限制导致的,但优先推荐更换路径的方案,避免长期依赖管理员权限。

修正后的完整代码示例

import csv  # 必须导入csv模块,否则csv.writer会报错

# 替换为你的用户目录路径
file_name = r'C:\Users\Peter\Documents\game_tallies.csv'

with open(file_name, mode='w', newline="", encoding='utf-8') as tally_file:
    tally_writer = csv.writer(tally_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
    tally_writer.writerow(['Banker Total','Player Total','Total Draws','Total Surrenders'])
    tally_writer.writerow([str(banker_total_score), str(player_total_score), str(draw_total), str(surrender_total)])

# 移除多余的close语句,with会自动处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 01:42:42