Python读取文件常遇到字符串编码的问题。
比如说在读取简体中文时,报错 UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xc8 in position 0: invalid continuation byte。其原因是简体中文编码格式并非utf-8。解决方法是先用chardet库来查看文件的编码格式,然后根据格式做出正确的解码。
import chardet
path=‘399300.csv’
f = open(path,'rb')
data = f.read()
print(chardet.detect(data))
结果如:
{‘encoding’: ‘GB2312’, ‘confidence’: 0.99, ‘language’: ‘Chinese’}
在 Python3 中标准编码格式 Standard Encodings
那么读取带中文简体字符的文件就可以这样写
import pandas as pd
df=pd.read_csv('399300.csv',header=0,sep=',',encoding='gb2312')