我尝试使用以下代码将列表写入csv文件,但它始终显示错误:
a bytes-like object is required, not 'str'
以下是代码:
import csv
a=['a','b','c']
with open(r"result.csv",'wb') as resultFile:
writer = csv.writer(resultFile, lineterminator='\n')
for i in a:
writer.writerows([[i]])
答案 0 :(得分:4)
您open
将文件放入'二进制文件'模式而不是' text'模式:
with open(r"result.csv",'w') as resultFile: # instead of 'wb'
应该有用。
答案 1 :(得分:0)
就像@hiro主角所说,你是以二进制模式打开文件。 Here是一些有用的文档。
Python区分二进制和文本I / O.以二进制模式打开的文件(包括模式参数中的' b')将内容作为bytes对象返回,而不进行任何解码。在文本模式下(默认情况下,或者当模式参数中包含'#39)时,文件的内容将返回为str,这些字节首先使用平台相关解码编码或使用指定的编码(如果给定)。
你也可以使用pandas to_csv:
import pandas as pd
a = ['a', 'b', 'c']
df = pd.DataFrame(a)
df.to_csv('result.csv', header=None, index=False)