python - 在 Python 3 中编写 csv

标签 python csv python-3.x

我是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/

相关文章:

python - python解释器如何处理对象的负引用计数?

python - 使用一个变量定义多个函数docstring

python-3.x - Matplotlib 使用文本而不是标记,但这不是最好的方法吗?

python - 使用 Python 将文本文件写入 SQL

python - 比较 Python Pandas DataFrames 以匹配行

csv - 将缺失值的整数导出到 Pandas 中的 csv

java - Excel 中以 "ID"作为第一项的 CSV 文件已损坏

php - 从 PHP 中的大型 CSV 文件中读取多列

python-3.x - 如何将列表输入到嵌入层?

python - scikit-learn 的单热编码特征的格式应该是什么?