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

ExcelWriter save方法无法立即写入磁盘,Jupyter中需关闭软件才可访问文件

解决方案

问题根源

Windows系统下Jupyter内核会持有xlsxwriter创建的文件句柄,即使执行了writer.save(),文件仍处于锁定状态,必须关闭Jupyter才能释放。

解决办法

  • 使用上下文管理器(推荐)
    用with语句创建ExcelWriter,它会自动完成资源清理和文件句柄释放,无需手动调用save()或close():

    import pandas as pd
    import xlsxwriter
    
    data = {'Values': [397, 358, 412]}
    df = pd.DataFrame(data)
    
    # 用with语句管理writer对象
    with pd.ExcelWriter('output.xlsx', engine='xlsxwriter') as writer:
        df.to_excel(writer, sheet_name='Sheet1', index=False)
        
        workbook = writer.book
        worksheet = writer.sheets['Sheet1']
        
        # 定义格式和条件格式
        green_format = workbook.add_format({'bg_color': '#00B050'})
        yellow_format = workbook.add_format({'bg_color': '#FFFF00'})
        orange_format = workbook.add_format({'bg_color': '#FFC000'})
        red_format = workbook.add_format({'bg_color': '#FF0000'})
        
        worksheet.conditional_format('A2:A4', {'type': 'cell','criteria': '>=','value': 391,'format': green_format})
        worksheet.conditional_format('A2:A4', {'type': 'cell','criteria': 'between','minimum': 354,'maximum': 390,'format': yellow_format})
        worksheet.conditional_format('A2:A4', {'type': 'cell','criteria': 'between', 'minimum': 293,'maximum': 353,'format': orange_format})
        worksheet.conditional_format('A2:A4', {'type': 'cell','criteria': '<=','value': 292,'format': red_format})
        
        # 无需手动save(),with块结束会自动保存并关闭
    
  • 手动关闭writer对象
    在writer.save()后添加writer.close(),强制释放文件句柄:

    # ... 原有代码 ...
    writer.save()
    writer.close()  # 新增这行
    
  • 确认文件保存路径
    有时候文件没出现在桌面,是因为Jupyter的工作目录不是桌面。可以先查看当前工作目录:

    import os
    print(os.getcwd())
    

    或者直接指定桌面的绝对路径保存,比如:

    # Windows桌面路径示例,替换成你的用户名
    path = 'C:/Users/你的用户名/Desktop/output.xlsx'
    writer = pd.ExcelWriter(path, engine='xlsxwriter')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:50:28