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

Python使用XlsxWriter覆盖XLSX文件报Permission denied错误如何解决

解决方案

错误原因排查

首先排查两个最常见的触发原因:

  • 检查之前生成的mismatch.xlsx是否处于打开状态,Windows系统下打开的Excel文件会被系统加独占锁,此时程序尝试写入就会报13号权限错误,关闭文件后重新运行即可。
  • 检查代码内的文件名拼写:你提供的代码中文件名写的是mismtach.xlsx,正确拼写为mismatch.xlsx,路径拼写错误也可能引发权限类报错。

覆盖写入逻辑实现

xlsxwriter本身为只写模式,不支持修改现有Excel文件,要实现「文件存在则清空旧数据写入新内容,不存在则新建」的需求,直接在创建工作簿前判断文件是否存在、存在则先删除即可,完整代码示例如下:

import os
import xlsxwriter

# 统一声明文件路径,避免拼写错误,路径前加r防止转义
file_path = r'C:\你的指定路径\mismatch.xlsx'

# 判断文件是否存在,存在则先删除
if os.path.exists(file_path):
    try:
        os.remove(file_path)
    except PermissionError:
        print("文件被占用,请关闭已打开的mismatch.xlsx后重试")
        # 终止程序运行
        exit()

# 原有写入逻辑替换路径即可
with xlsxwriter.Workbook(file_path) as workbook:
    worksheet = workbook.add_worksheet()
    worksheet2 = workbook.add_worksheet()
    worksheet3 = workbook.add_worksheet()
    
    for row_num, data in enumerate(mismatch_true):
        worksheet.write_row(row_num, 0, data)  
    for row_num2, data2 in enumerate(semi):
        worksheet2.write_row(row_num2, 0, data2) 
    for row_num3, data3 in enumerate(quarter):
        worksheet3.write_row(row_num3, 0, data3)

上述代码逻辑同时增加了文件占用的异常捕获,遇到文件被锁定的情况会直接给出明确提示,方便快速定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:36:03