繁体   English   中英

如何使用python写入.csv文件

[英]How do I write to a .csv file with python

我使用Python3.6编写了一个简单的脚本,并使用csv模块创建了一个csv文件。 我的代码附在下面,是我在网上找到的多个示例的副本,但是当我运行代码时,出现错误消息TypeError: a bytes-like object is required, not a 'str'

import csv
File_Name = Test.csv
with open(File_Name, 'wb') as csvfile:
   filewriter = csv.writer(csvfile,delimiter=',')
   filewriter = writerow(['Paul','Mary'])

不应将csvwriter实例重新分配给它。 应该用来写行。

在python 3中,您应该按照文档的说明newline=''以只写模式打开文件

import csv

filename = 'Test.csv'

with open(filename, 'w', newline='') as csvfile:
   file_writer = csv.writer(csvfile,delimiter=',')
   file_writer.writerow(['Paul','Mary'])

如果不需要二进制模式,可以使用以下命令:

with open(File_Name, 'w') as csvfile:
   filewriter = csv.writer(csvfile,delimiter=',')
   filewriter.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'])

问题是您以二进制模式打开了文件

with open(File_Name, 'wb') as csvfile:

这意味着从文件读取的所有数据都以字节对象而不是str返回。 如果不需要,请尝试:

with open(File_Name, 'w') as csvfile:

你也应该使用writerow方法的csvwriter ,而不是重新分配它:

file_writer.writerow(['Paul','Mary'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM