将int或float列表写入CSV

时间:2019-04-09 14:30:04

标签: python list csv

我陷入了这个问题。我在官方文档页面上跟踪了SO上的许多代码示例,但得到的是:

Python 3.7.0 (default, Aug 22 2018, 20:50:05) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import csv
>>> 
>>> float_list = [1.13, 0.25, 3.28]
>>> 
>>> with open('some.csv', "wb") as file:
...     writer = csv.writer(file, delimiter=',')
...     writer.writerow(float_list)
... 
Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
TypeError: a bytes-like object is required, not 'str'
>>> 

也有同样的事情

int_list=[1,2,3]

一些建议?

1 个答案:

答案 0 :(得分:1)

代码中使用的“ wb”表示您正在写入文件(使用 w ),并且正在以二进制模式进行写入(使用 b )。

由于这个原因,您得到了所看到的错误,告诉写者期望字节,但是随后您正在发送字符串。

请更改:

with open('some.csv', "wb") as file:

收件人:

with open('some.csv', "w") as file:

更多技术细节:

  

在Windows上,附加到模式的'b'以二进制模式打开文件,因此   还有“ rb”,“ wb”和“ r + b”之类的模式。 Windows上的Python   区分文本文件和二进制文件;行尾   文本文件中的字符在数据   被读取或写入。对文件数据的幕后修改   对于ASCII文本文件来说很好,但是那样会破坏二进制数据   JPEG或EXE文件中。

Here's also a link to the documentation