Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在熊猫中读取csv文件的编码类型_Python_Pandas_Csv_Encoding_Encode - Fatal编程技术网

Python 在熊猫中读取csv文件的编码类型

Python 在熊猫中读取csv文件的编码类型,python,pandas,csv,encoding,encode,Python,Pandas,Csv,Encoding,Encode,好的,我正在写一个代码,在这里我使用pandas.read_CSV读取CSV文件,问题在于编码,我使用的是utf-8-sig编码,这是有效的。但是,这给了我一个其他CSV文件的错误。我发现有些文件需要其他类型的编码,比如cp1252。问题是我不能将用户限制为与我的编码匹配的特定CSV类型。 那么有什么解决办法吗?例如,是否有适用于所有CSV的通用编码类型?或者我可以传递所有可能编码器的数组吗?您可以尝试以下方法: 或者在try/except语句中迭代多种格式: encodings = [&quo

好的,我正在写一个代码,在这里我使用
pandas.read_CSV
读取CSV文件,问题在于编码,我使用的是
utf-8-sig
编码,这是有效的。但是,这给了我一个其他CSV文件的错误。我发现有些文件需要其他类型的编码,比如
cp1252
。问题是我不能将用户限制为与我的编码匹配的特定CSV类型。 那么有什么解决办法吗?例如,是否有适用于所有CSV的通用编码类型?或者我可以传递所有可能编码器的数组吗?

您可以尝试以下方法:

或者在try/except语句中迭代多种格式:

encodings = ["utf-8-sig, "cp1252", "iso-8859-1", "latin1"]
try:
    for encoding in encodings:
        pandas.read_csv(..., encoding=encoding, ...)
        ...
except ValueError:  # or the error you receive
    continue

CSV文件是一个文本文件。如果它只包含ASCII字符,现在没有问题,大多数编码都可以正确处理普通ASCII字符。非ASCII字符会出现问题。例

性格 拉丁1码 cp850代码 UTF-8码 é
'\xe9'
'\x82'
'\xc3\xa9'
è
'\xe8'
'\x8a'
'\xc3\xa8'
ö
'\xf6'
'\x94'
'\xc3\xb6'

是的,它正在工作,谢谢你的回答谢谢你的回答