我有一个带有几个重音字符的csv,包括国名。我正在使用具有指定编码和方言的csv阅读器来解析它,但它并没有很好地处理重音。
p = re.compile('(?<=n).*?(?=,)')
with open('/file.csv', 'rt', encoding='cp1252') as csvFile:
reader = csv.reader(csvFile, dialect='excel')
next(csvFile)
for row in reader:
print(row[0])
accented_words = p.findall(row[8])[0].strip()
print(accented_words)
p
是一个正则表达式,可以删除一些重音字符。它给我的结果像'C™ted'Ivoire'。如何通过这个并保留重音字符?
答案 0 :(得分:1)
解析在Python 3中使用excel
方言的csv文件的正确方法:
with open('/file.csv', newline='', encoding=correct_encoding) as file:
reader = csv.reader(file)
您的问题可能是错误的输入字符编码:
>>> print(u'Côte d’Ivoire'.encode('utf-8').decode('cp1252'))
Côte d’Ivoire
该示例显示了如果将utf-8数据解码为cp1252会发生什么。