gpt4 book ai didi

python - 在 Python 3 中对 csv 文件使用正确的编码

转载 作者:行者123 更新时间:2023-12-01 01:36:09 24 4
gpt4 key购买 nike

我编写了一个带有一个变量的函数,file ,这是一个大.csv文档。在为一个特定文件调用该函数后(该文件是德语),我立即收到以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 4: invalid continuation byte

系统默认编码为utf-8 ,但如果我 open('C:/Users/me/Desktop/data/myfile.csv') ,输出为:

<_io.TextIOWrapper name='C:/Users/me/Desktop/data/myfile.csv' mode='r' encoding='cp1252'> .

使用file.decode('cp1252').encode('utf8')'str' object has no attribute 'decode'开始就不起作用了,所以我尝试了:

for decodedLine in open('C:/Users/me/Desktop/data/myfile.csv', 'r', encoding='cp1252'):
line = decodedLine.split('\t')

但是line是一个列表对象,我不能 .encode()它。

我怎样才能制作.csv具有不同编码的文件可读吗?

最佳答案

如果我理解正确,您有一个采用 cp1252 编码的 csv 文件。如果是这种情况,您所要做的就是使用正确的编码打开文件。就 csv 而言,我会使用 csv来自标准库的模块。或者,您可能想查看更专业的库,例如 pandas .

无论如何,要解析您的csv,您可以这样做:

import csv

with open(filepath, 'r', encoding='cp1252') as file_obj:
# adjust the parameters according to your file, see docs for more
csv_obj = csv.reader(file_obj, delimiter='\t', quotechar='"')
for row in csv_obj:
# row is a list of entries
# this would print all entries, separated by commas
print(', '.join(row))

关于python - 在 Python 3 中对 csv 文件使用正确的编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52381020/

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