一尘不染

pandas:文件格式和文件名中带有重音/特殊字符的oserror

python

我试图用来pandas.read_csv从一些.csv文件中获取数据。只要文件名或文件路径中没有重音(例如ä,é,ü),此方法就可以正常工作。当我使用诸如这样的文件名时,düm1.csv出现以下错误:OSError: Initializing from file failed。我的代码是:

dum1 = pd.read_csv(r"C:\Users\MyName\Desktop\dumm12\düm1.csv", sep = ";", decimal = ",", encoding = "utf-8")

我正在使用pandas 0.20.1和python
3.6.0。我发现这在以前的版本中是一个问题,但我认为它已解决。有想法该怎么解决这个吗?我也发现了这个:https : //github.com/pandas-
dev/pandas/issues/15086

pd.show_versions()的输出:

安装的版本提交:无python:3.6.0.final.0 python位:64 OS:Windows
OS版本:10计算机:AMD64处理器:Intel64家族6模型78步骤3,真正的英特尔字节顺序:little
LC_ALL:无LANG:zh_cn地点:无。无

大熊猫:0.20.1 pytest:3.0.5 pip:9.0.1 setuptools:27.2.0 Cython:None numpy:1.11.3
scipy:0.18.1 xarray:None IPython:5.2.2 sphinx:1.5.1 patsy:0.4。 1
dateutil:2.6.0 pytz:2016.10 blosc:无瓶颈:1.2.0表:3.2.2
numexpr:2.6.2羽毛:无matplotlib:2.0.0 openpyxl:2.4.1 xlrd:1.0.0 xlwt:1.2.0
xlsxwriter:0.9.6 lxml:3.7.3 bs4:4.5.3 html5lib:0.999 sqlalchemy:1.1.5
pymysql:无psycopg2:无jinja2:2.9.5 s3fs:无pandas_gbq:无pandas_datareader:无


阅读 273

收藏
2021-01-20

共1个答案

一尘不染

我有一个类似的问题。在Windows系统中,使用Python 3.6的pandas.read_csv似乎出现了问题。

Python 3.6将Windows文件系统编码从“ mbcs”更改为“ UTF-8”。参见Python PEP
529
。您可以使用命令sys.getfilesystemencoding()获取当前文件系统编码

我得到两种解决方案:

1.-使用此代码将所有应用更改为与以前的Python <= 3.5编码(“ mbcs”)配合使用

import sys
sys._enablelegacywindowsfsencoding()

2.-将文件指针传递给pandas.read_csv

with open("C:\Users\MyName\Desktop\dumm12\düm1.csv", 'r') as fp:
        dum1 = pd.read_csv(fp, sep = ";", decimal = ",", encoding = "utf-8")
2021-01-20