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

Python 3中csv.DictWriter生成0字节空白CSV文件问题求助

解决Python 3生成空白CSV文件的问题

嘿,我帮你揪出问题根源啦!你代码里的文件打开模式用错了——在Python 3中使用csv模块时,绝对不能用二进制模式'wb',得换成文本模式,还要加上newline=''参数来保证换行符的正确处理,这就是你生成0字节空白文件的核心原因。

修正后的代码

import csv

# 确保self.SALES_SHEET是正确的文件路径
with open(self.SALES_SHEET, 'w', newline='', encoding='utf-8') as sf:
    fieldnames = ['first_name','last_name']
    writer = csv.DictWriter(sf, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({'first_name': 'Zach' ,'last_name': 'B'})

关键修改点说明

  • 把'wb'改成'w':Python 3的csv模块是基于文本流设计的,二进制模式会打乱它的写入逻辑,直接导致内容无法正确写入文件。
  • 添加newline='':这个参数让csv模块自行处理换行符,既能避免OS X(\n)和其他系统的换行符冲突,也能防止Excel读取时出现异常。
  • 可选的encoding='utf-8':明确指定编码能避免字符乱码问题,尤其适合用Excel打开文件的场景。

额外排查建议

如果修改后还是生成空白文件,可以检查这两点:

  • 确认self.SALES_SHEET的路径是否正确,以及你有没有该目录的写入权限(比如OS X的系统目录可能需要额外权限)。
  • 给代码加上异常捕获,看看有没有隐藏错误:
    try:
        with open(self.SALES_SHEET, 'w', newline='', encoding='utf-8') as sf:
            fieldnames = ['first_name','last_name']
            writer = csv.DictWriter(sf, fieldnames=fieldnames)
            writer.writeheader()
            writer.writerow({'first_name': 'Zach' ,'last_name': 'B'})
    except Exception as e:
        print(f"写入出错啦:{e}")
    

内容的提问来源于stack exchange,提问作者Sleepy-Z

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:31:07