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

Python创建CSV文件遇AttributeError:module 'csv'无writer属性的解决方法

解决AttributeError: module 'csv' has no attribute 'writer'错误

核心原因

你的脚本文件名大概率是csv.py,和Python标准库的csv模块重名,导致导入的是你自己的脚本文件而非系统标准库,因此找不到writer方法。

解决方案

  1. 重命名脚本文件:把你的脚本文件名从csv.py改成其他名称,比如menu_csv_generator.py
  2. 清理缓存文件:删除当前目录下的csv.pyc文件或__pycache__文件夹(如果存在),避免缓存干扰模块导入
  3. 修正代码中的其他错误:
    • 缩进错误:writer.writerow('n')这行缩进不规范,需和前面的writer = csv.writer(csv_file)保持一致
    • 无效数据:writer.writerow('n')和writer.writerows('s')传入的参数不符合要求,writerow需要接收一行数据的列表/元组,writerows需要接收多行数据的可迭代对象
    • 文件对象已关闭:print(csv_file)在with块外执行会报错,因为文件已经被自动关闭,若要验证内容需重新打开文件

修正后的完整代码

import csv

# 注意:脚本文件名不能是csv.py
with open('menu.csv', mode='w', newline='', encoding='utf-8') as csv_file:
    fieldnames = ['item', 'price', 'category', 'rating', 'total', 'popular dish']
    writer = csv.writer(csv_file)
    # 写入表头
    writer.writerow(fieldnames)
    # 写入示例数据
    menu_items = [
        ['汉堡', 15, '快餐', 4.5, 100, '是'],
        ['冰可乐', 6, '饮品', 4.3, 220, '是'],
        ['炸鸡块', 12, '快餐', 4.4, 180, '否']
    ]
    writer.writerows(menu_items)

# 读取并打印文件内容验证结果
with open('menu.csv', encoding='utf-8') as f:
    print(f.read())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 17:54:57