gpt4 book ai didi

python - 将 csv 中的 unicode 转换为纯文本的最佳方法?

转载 作者:太空狗 更新时间:2023-10-30 03:02:03 26 4
gpt4 key购买 nike

我有一个包含 unicode 字符的大型 csv 文件,这些字符导致我尝试运行的 Python 脚本出错。到目前为止,我删除它们的过程非常繁琐。我运行我的脚本,一旦遇到 unicode 字符,我就会收到错误消息:

'ascii' codec can't encode character u'\xef' in position 197: ordinal not in range(128)

然后我用 Google 搜索 u'\xef' 并试图弄清楚这个字符到底是什么(有人知道一个包含这些定义列表的网站吗?)。我正在使用该信息来构建字典,并且我有第二个 Python 脚本,可将 unicode 字符转换为常规文本:

unicode_dict = {"\xb0":"deg", "\xa0":" ", "\xbd":"1/2", "\xbc":"1/4", "\xb2":"^2", "\xbe":"3/4"}

for f in glob.glob(r"C:\Folder1\*.csv"):
in_csv = f
out_csv = f.replace(".csv", "_2.csv")

write_f=open(out_csv, "wb")
writer = csv.writer(write_f)

with open(in_csv,'rb') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
new_row = []
for s in row:
for k, v in unicode_dict.iteritems():
s = s.replace(k, v)
new_row.append(s)
writer.writerow(new_row)

write_f.close()
os.remove(in_csv)
os.rename(out_csv, in_csv)

然后我必须再次运行代码,得到另一个错误,然后在 Google 上查找下一个 unicode 字符。一定有更好的方法,对吧?

最佳答案

阅读http://www.joelonsoftware.com/articles/Unicode.html .小心。

然后,您就会明白,您需要知道文件的编码。如果您能够找出\xbd 的含义,也许有些地方提到它是哪种编码。

然后,使用 io.open(in_csv, 'rb', encoding='yourencodinghere') 而不是普通的 open 调用。

那么,显然 csv 模块不处理 Unicode,唉。使用 SBillion 的答案(例如 http://www.joelonsoftware.com/articles/Unicode.html)中的内容来解决它。

关于python - 将 csv 中的 unicode 转换为纯文本的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23396069/

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