文件无法读取:UnicodeDecodeError

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件无法读取:UnicodeDecodeError相关的知识,希望对你有一定的参考价值。

我有一个'csv'文件,其中包含str,int和datetime列。当我使用pd.read_csv(file_name, encoding='utf-8')打开文件时,出现以下错误:

UnicodeDecodeError:'utf-8'编解码器无法解码位置109中的字节0xa5:无效的起始字节

我尝试使用下面的代码但是我得到了所有列的'str'类型结果,每个值用逗号分隔。

file = open(file_name, "r", encoding='utf-8', errors='ignore')
df = file.read()

如何将文件作为数据框读取或将上述代码的结果转换为数据框?

答案

如果您获得UnicodeDecodeerror,则数据不是UTF-8编码的。

您尚未提供任何示例数据,但要加载一个简单的文件,例如:

filename,integer,date
file,1,2018-02-02

这可用于获取除字符串以外的数据类型(免责声明,而不是熊猫专家(还)...只需阅读文档。可能有一种更简单的方法来解析日期):

>>> import pandas as pd
>>> from datetime import datetime
>>> a=pd.read_csv('out.csv',dtype={1:int},converters={2:lambda x:datetime.strptime(x,'%Y-%m-%d')})
>>> a
  filename  integer       date
0     file        1 2018-02-02
>>> a.dtypes
filename            object
integer              int32
date        datetime64[ns]
dtype: object

以上是关于文件无法读取:UnicodeDecodeError的主要内容,如果未能解决你的问题,请参考以下文章

使用configparser读取带有中文的配置文件出现UnicodeDecodeError错误

Python读取内容UnicodeDecodeError错误

Python读取log文件报错“UnicodeDecodeError”

Pandas读取csv文件报错UnicodeDecodeError

UnicodeDecodeError:'charmap'编解码器无法解码位置Y中的字节X:字符映射到

python读取csv,txt,excel类似文件出现UnicodeDecodeError错误