如何使用python写入.csv文件
问题描述:
我正在用Python3.6编写一个简单的脚本,并且正在使用csv模块创建一个csv文件。我的代码附在下面,并且是我在网上找到的多个示例的副本,但是当我运行代码时,出现错误消息TypeError: a bytes-like object is required, not a 'str'
。如何使用python写入.csv文件
import csv
File_Name = Test.csv
with open(File_Name, 'wb') as csvfile:
filewriter = csv.writer(csvfile,delimiter=',')
filewriter = writerow(['Paul','Mary'])
答
如果您不需要二进制模式,您可以使用此:
with open(File_Name, 'w') as csvfile:
filewriter = csv.writer(csvfile,delimiter=',')
filewriter.writerow(['Paul','Mary'])
检查表here看到我们提供的不同模式的细节。
答
的事情是,你打开文件进行二进制模式
with open(File_Name, 'wb') as csvfile:
这意味着,从文件中读取所有数据返回字节对象,而不是海峡。 如果你不需要它,尝试:
with open(File_Name, 'w') as csvfile:
你也应该使用csvwriter
的writerow
方法,而不是将其重新分配:
file_writer.writerow(['Paul','Mary'])
答
的csvwriter
实例不应该被重新分配给。它应该用于写入行。
在python 3中,你应该以只写模式打开文件newline=''
每documentation。
import csv
filename = 'Test.csv'
with open(filename, 'w', newline='') as csvfile:
file_writer = csv.writer(csvfile,delimiter=',')
file_writer.writerow(['Paul','Mary'])
答
你必须从改变的WB'到 'W' 和文件名应该是在引号( “Test.csv” 或 'Test.csv')请参见下面
import csv
File_Name = "Test.csv"
with open(File_Name, 'w') as csvfile:
filewriter = csv.writer(csvfile,delimiter=',')
filewriter.writerow(['Paul','Mary'])
使用'用打开(File_Name,'w')作为csvfile' – ettanany
'writerow'从哪里来?您正在重写'filewriter' –
在Python 3.x中,打开csv文件进行写入的正确方法是将open(打开(File_Name,'w',newline ='')作为csvfile:',如示例中所示[documentation。](https://docs.python.org/3/library/csv.html#csv.writer)。您还需要使用'filewriter.writerow(['Paul','Mary'])''。 – martineau