文件无法读取: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