【问题标题】:Write a csv file in Python : error with function writerows用 Python 编写 csv 文件:函数 writerows 出错
【发布时间】:2017-01-09 22:41:51
【问题描述】:

为了将列表列表保存到 csv 文件中,我使用了 csv 模块。这是我的脚本:

import csv
a = [[1.2,'abc',3],[1.2,'werew',4],[1.4,'qew',2]]
with open("output.csv", "wb") as f:
writer = csv.writer(f)
writer.writerows(a)

当我运行这个脚本时,会出现一条错误消息:

Traceback (most recent call last):
File "csv-ex.py", line 5, in <module>
writer.writerows(a)
TypeError: a bytes-like object is required, not 'str'

有人知道缺少什么吗?

【问题讨论】:

    标签: python python-3.x csv


    【解决方案1】:

    您以二进制模式打开文件,但 csv.writer() 对象发送字符串。

    通过删除b 以文本模式打开文件。也建议你设置newline='':

    with open("output.csv", "w", newline='') as f:
    

    csv module footnote

    如果未指定newline='',则嵌入在引用字段中的换行符将无法正确解释,并且在使用\r\n linendings 的平台上将添加额外的\r。指定newline='' 应该始终是安全的,因为csv 模块自己(通用)换行处理。

    在 Python 2 中,出于同样的原因,建议以二进制模式打开文件,但 Python 3 中的 I/O 层使用 newline 选项可以更好地处理这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      相关资源
      最近更新 更多