我正在尝试从特定文件路径中的文本文件导入数据,但收到错误'utf-8' codec can't decode byte 0xa5 in position 18: invalid start byte
我的问题是,无论如何我可以对所有文本文件(大约20个其他)应用“utf-8”编码我最终必须打开所以我可以防止上述错误?
代码:
import pandas as pd
filelist = [r'D:/file1',r'D:/file2']
print (len((pd.concat([pd.read_csv(item, names=[item[:-4]]) for item in filelist],axis=1))))
如果我做错了,也会接受任何建议。
提前谢谢你。
答案 0 :(得分:1)
不知道在python中自动将编码转换为utf-8的解决方案。
或者,您可以找出编码的内容,并相应地阅读。然后在utf-8中写入文件。
this solution适用于我的文件(信用maxnoe)
import chardet
import pandas as pd
with open('filename.csv', 'rb') as f:
result = chardet.detect(f.read()) # or readline if the file is large
pd.read_csv('filename.csv', encoding=result['encoding'])
不要忘记pip install chardet
如果你现在用pd.to_csv()
写文件,pandas默认是用utf-8编码