使用此代码尝试打印csv中的每一行:
import csv
f = open('export.csv')
csv_f = csvkit.reader(f)
for row in csv_f:
print(row)
不幸的是,csv文件包含多行的字符®,这会导致以下错误:
UnicodeEncodeError: 'charmap' codec can't encode character '\xae' in position 27: character maps to <undefined>
我已经搜索了类似问题的其他答案,并尝试使用不同的编码,但遗憾的是无法完全包围它以使其工作。 CSV文件似乎是UTF-8格式,或者至少是OpenOffice Calc在Windows中打开文件时所说的。
在“忽略”®字符时是否有任何方法可以打印行,以便不返回错误?任何替代解决方案也将受到高度赞赏。
答案 0 :(得分:1)
如果你想过滤一些&#34; unprintable / weird&#34;你可以这样做:
row = ["aaaaa \xae bbbbb","foo"]
filtered_row = ["".join(c if ord(c)<128 else "." for c in s) for s in row]
print(filtered_row)
结果(所有奇怪的字符都被点替换):
['aaaaa . bbbbb', 'foo']