我试图用来pandas.read_csv从一些.csv文件中获取数据。只要文件名或文件路径中没有重音(例如ä,é,ü),此方法就可以正常工作。当我使用诸如这样的文件名时,düm1.csv出现以下错误:OSError: Initializing from file failed。我的代码是:
pandas.read_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:无
我有一个类似的问题。在Windows系统中,使用Python 3.6的pandas.read_csv似乎出现了问题。
Python 3.6将Windows文件系统编码从“ mbcs”更改为“ UTF-8”。参见Python PEP 529。您可以使用命令sys.getfilesystemencoding()获取当前文件系统编码
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")