我是Python的初学者,我想做的就是删除表中某些销售中的空间。 但由于错误,我无法写入csv。 我已经检查了 stackoverflow 中的几篇相关帖子,但仍然无法纠正我的代码。
错误
第 27 行,位于
csvWriter.writerow(已更正)
类型错误:“str”不支持缓冲区接口(interface)
代码
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
doesn't support binary output streams 。文档中没有提到这一点,更糟糕的是,它与 Python 2 建议始终使用 b
打开底层文件相背离。
幸运的是,修复很简单:只需以文本模式而不是二进制模式打开文件即可。 docs还建议您在打开文件时指定 newline=''
,因此您也可以这样做。
g = open('/Users/Study/Data/WGI/WGI_Data_Renamed_Python.csv', 'a', newline='')
csvWriter = csv.writer(g)
关于python - 在 Python 3 中编写 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27489781/