2017-05-30 13 views
0

私はいくつかの.csvファイルからデータを取得するためにpandas.read_csvを使用しようとしています。これは、ファイル名やファイルパスにアクセント(例:ä、é、ü)がない限り正常です。 OSError: Initializing from file failed:できるだけ早く私は、このようなdüm1.csvとしてファイル名を使用するように私は次のエラーを取得します。私のコードは次のとおりです。私はパンダ0.20.1とPython 3.6.0を使用していますパンダ:ファイルのパスとファイル名にアクセント/特殊文字とOSERROR

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

。私は以前のバージョンでこれが問題になっていることが判明しましたが、解決されたと思いました。どのようにこれを修正するための任意のアイデア? Windowsの :コミット

インストールされたバージョン:なし のpython:3.6.0.final.0 のpython-ビット:64 OS pd.show_versions()の https://github.com/pandas-dev/pandas/issues/15086

出力:また、私はこれを見つけましたOSリリース:10 機械:AMD64 プロセッサ:Intel64ファミリー6モデル78 3、GenuineIntel BYTEORDERステッピング:少し LC_ALL:なし LANG: LOCALE EN:None.None

頭の

パンダ:0.20.1 pytest:3.0.5 PIP:9.0.1 setuptoolsの:27.2.0 Cython:なし numpyの:1.11.3 scipyのダウンロード:0.18.1 xarray:なし IPython:5.2。 2つの スフィンクス:1.5.1 パッツィ: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:なし

+0

このエラーは、Python 3.6.1、Pandas 0.20.1で再現できます。しかし、私は昨日までPython 3.4.4とPandas 0.18.1で作業していました。 – elzell

+0

それは変です。新しいバージョンではバグかもしれませんが、私はダウングレードする必要がありますか? – rashid

答えて

1

私は同様の問題がありました。それは、WindowsシステムのPython 3.6でpandas.read_csvに問題が発生したようです。

「mbcs」から「UTF-8」へのWindowsファイルシステムエンコーディングの変更。 Python PEP 529を参照してください。あなたは

は、私はこの約2ソリューションを取得し、現在のファイルシステムのエンコーディングを取得するには、コマンドsys.getfilesystemencoding()を使用することができます。

1.-前のPython <と作品へのすべてのアプリを変更するには、このコードを使用= 3.5のエンコーディングを( "MBCS")

import sys 
sys._enablelegacywindowsfsencoding() 

2.-あなたがこの記事を見ることができます

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

pandas.read_csvにファイルポインタを渡し:pandas.read_csv can't import file with accent mark in path

0

issueは現在まで解決されていません。 PRまでお待ちください。それとも私はそれは私が偽のファイル「düm1.csv」を作成する際に名前をテストし

1

働くかもしれないと思うのPython 2.7でそれを試してみてください。

私が実行します。

df = pd.read_csv('düm1.csv',sep=';') 

私はOSErrorの、ファイルを持っていないが、私のIpythonで開かれています。

Unnamed: 0 test1 test2 test3 tes4 
0   NaN 1.0 2.0 3.0 4.0 
1   NaN NaN NaN NaN NaN 
2   NaN NaN NaN NaN NaN 
3   NaN NaN NaN NaN NaN 
4   NaN NaN NaN NaN NaN 

エンコードせずに試しましたか?アクセントなし?

C.

+0

ありがとうございます、それはあなたのために働くのが奇妙です。エンコードせずに試しましたが、うまくいきません。しかし、アクセントなしで動作します。他のアイデア?私はそれが一般的な問題ではなく、むしろ私のコード、マシンまたはパッケージのバージョンに関連していることを知って、このようにテストしていただきありがとうございます。 – rashid

+0

ようこそ。私はPython 3.6.1とipython 5.3.0を使用しています。あなたはencoding = 'ISO-8859-1'で試すことができます –

+0

エンコーディングISO-8859-1で試しましたが、うまくいきませんでした。私はpythonとipythonを更新し、それが助けてくれることを願っています。 – rashid

関連する問題