【发布时间】:2018-03-29 10:10:37
【问题描述】:
我正在尝试向 CSV 文件中的一行添加一些信息,但在更新后的 CSV 文件中,特殊字符(²、±)的编码不正确。让我澄清一下:
所以基本上我有一个带有以下示例行的 CSV 文件:
row = ["Some info", "Cell with special characters (², ±)", "Some more info"]
我正在尝试向第二列添加一些文本,所以我编写了以下代码
import csv
new_rows = []
# Open CSV file
with open('file_1.csv', 'r', encoding='UTF-8') as f1
reader = csv.reader(f1, delimiter=',')
for row in reader:
# Add text to cell, save row to memory
row[1] = row[1] + " is causing trouble"
new_rows.append(row)
# Write rows in new CSV-file
with open('file_2.csv', 'w', encoding='UTF-8', newline='') as of:
writer = csv.writer(of, delimiter=',')
writer.writerows(new_rows)
我期望的第二列的输出如下:
"Cell with special characters (², ±) is causing troubles"
但我得到以下输出:
"Cell with special characters (??, ??) is causing troubles"
我尝试通过将编码更改为 Latin-1 来解决问题,甚至根本不提及代码中的编码,但似乎没有任何效果!
我在这里遗漏了什么或做错了什么?
【问题讨论】:
-
我无法重现该错误。因此,您检查输出或环境的方式可能有问题。
-
问题可能是您使用的是
UTF-8,而特殊字符是ASC-II
标签: python-3.x csv encoding