Writing csv in Python 3



我是一个非常初学者,我只想删除表中某些销售中的空间。但是由于错误,我无法编写csv。我已经检查了堆栈溢出中的几个相关帖子,但仍然无法纠正我的电源线。

错误

第 27 行,在
csvWriter.writerow(更正)
类型错误:"str"不支持缓冲区接口

法典

import csv
# Read CSV
csvfile = '/Users/Study/Data/WGI/forPython.csv'
f = open(csvfile, 'r', newline='')
data = csv.reader(f)
# 
g = open('/Users/Study/Data/WGI/WGI_Data_Renamed_Python.csv', 'ab')
csvWriter = csv.writer(g)
# 
corrected = []
count = 0
# 
for row in data:
    corrected.append([])             
    corrected[count] = str.rstrip(row[0])
    count = count + 1
print(corrected)
# 
csvWriter.writerow(corrected)
g.close()

显然,Python 3 中的csv.writer不支持二进制输出流。文档中没有提到这一点,更糟糕的是,它与 Python 2 建议的倒退,即始终使用 b 打开底层文件。

幸运的是,修复很容易:只需以文本模式而不是二进制打开文件。文档还建议您在打开文件时指定newline='',因此您也可以这样做。

g = open('/Users/Study/Data/WGI/WGI_Data_Renamed_Python.csv', 'a', newline='')
csvWriter = csv.writer(g)

最新更新