gpt4 book ai didi

python - 有谁知道将现有 csv 文件转换为 UTF-8 编码的简单函数?

转载 作者:行者123 更新时间:2023-11-28 22:39:55 25 4
gpt4 key购买 nike

我有巨大的 csv 文件,它们包含 '\xc3\x84' 样式字符而不是德语变音符号,因为我使用 BeautifulSoup 废弃了 HTML 并使用 Python 2.7.8 将其写入 csv 文件。

我设法在这个帮助下替换了所有这些字符: Python 2.7.1: How to Open, Edit and Close a CSV file

现在我的代码如下所示:

import csv

new_rows = []
umlaut = {'\\xc3\\x84': 'Ä', '\\xc3\\x96': 'Ö', '\\xc3\\x9c': 'Ü', '\\xc3\\xa4': 'ä', '\\xc3\\xb6': 'ö', '\\xc3\\xbc': 'ü'}

with open('file1.csv', 'r') as csvFile:
reader = csv.reader(csvFile)
for row in reader:
new_row = row
for key, value in umlaut.items():
new_row = [ x.replace(key, value) for x in new_row ]
new_rows.append(new_row)

with open('file2.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerows(new_rows)

当我打开 csv 时,我看到的是 Köln 而不是 Köln 和其他“德语元音变音”问题。我可以通过用记事本打开 CSV 文件然后将其保存为 UTF-8 来手动解决这个问题,但我想用 python 自动完成。

我不太明白如何使用 UnicodeWriter:

https://docs.python.org/2/library/csv.html#examples

我在 stackoverflow 上找到的答案和解决方案都有点复杂。

我的问题是,我将如何在我的案例中正确使用 UnicodeWriter?你知道有什么 super 简单的函数可以做类似 file2.encode('utf-8') 的事情吗?如果 Python 中不存在这样一个简单的 like 函数,那么为什么它还不存在,因为编码错误很常见?

最佳答案

您可以使用 string-escape 而不是使用您自己的映射编码:

>>> print '\\xc3\\x84'.decode('string-escape')
Ä

import csv

def iter_decode(it):
for line in it:
yield line.decode('string-escape')

with open('file1.csv') as csvFile, open('file2.csv', 'w') as f:
reader = csv.reader(iter_decode(csvFile))
writer = csv.writer(f)
for row in reader:
writer.writerow(row)

关于python - 有谁知道将现有 csv 文件转换为 UTF-8 编码的简单函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34247202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com