我是Python的初学者,我想要做的就是删除表中某些卖点的空间。 但由于错误,我不能写csv。 我已经在stackoverflow中检查了几个相关帖子,但仍然无法纠正我的电话。
第27行,在
csvWriter.writerow(更正)
TypeError:'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()
答案 0 :(得分:2)
显然,Python 3 doesn't support binary output streams中的csv.writer
。文档中没有提到这一点,更糟糕的是,它总是从Python 2推荐向后,始终用b
打开底层文件。
幸运的是,修复很容易:只需以文本模式而不是二进制文件打开文件。 docs还建议您在打开文件时指定newline=''
,这样您也可以这样做。
g = open('/Users/Study/Data/WGI/WGI_Data_Renamed_Python.csv', 'a', newline='')
csvWriter = csv.writer(g)