web-dev-qa-db-ja.com

OSError:Pandasのc​​svでファイルからの初期化に失敗しました

私はすでにこの問題に関する同様の投稿をすべて調べましたが、解決策が見つかりませんでした...

これまでPandasはすべてのCSVファイルを問題なく読み通しましたが、現在は問題があるようです。

行うとき:

df = pd.read_csv(r'path to file', sep=';')

私は得る:

()内のOSErrorトレースバック(最後の最後の呼び出し)----> 1 df = pd.read_csv(r'pathÜbersicht\ Input\test\test.csv '、sep ='; ')

c:\ program files\python36\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer、sep、delimiter、header、names、index_col、usecols、squeeze、prefix、mangle_dupe_cols、dtype、engine、converters、 true_values、false_values、skipinitialspace、skiprows、nrows、na_values、keep_default_na、na_filter、verbose、skip_blank_lines、parse_dates、infer_datetime_format、keep_date_col、date_parser、dayfirst、イテレーター、chunksize、compression、千、小数、lineterminator、quotechar、quoting、quotingエンコード、方言、tupleize_cols、error_bad_lines、warn_bad_lines、skipfooter、skip_footer、doublequote、delim_whitespace、as_recarray、compact_ints、use_unsigned、low_memory、buffer_lines、memory_map、float_precision)703 skip_blank_lines = skip_blank_lines) 707 parser_f .name = name

c:\ program files\python36\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer、kwds)443 444#パーサーを作成します。 -> 445 parser = TextFileReader(filepath_or_buffer、** kwds)446 447チャンクサイズまたはイテレーターの場合:

c:\ program files\python36\lib\site-packages\pandas\io\parsers.py in init(self、f、engine、** kwds)812 self.options ['has_index_names'] = kwds ['has_index_names'] 813-> 814 self._make_engine(self.engine)815 816 def close(self):

c:\ program files\python36\lib\site-packages\pandas\io\parsers.py in _make_engine(self、engine)1043 def _make_engine(self、engine = 'c'):1044 if engine == 'c': -> 1045 self._engine = CParserWrapper(self.f、** self.options)1046 else:1047 if engine == 'python':

c:\ program files\python36\lib\site-packages\pandas\io\parsers.py in init(self、src、** kwds)1682 kwds ['allow_leading_cols'] = self.index_col Falseではない1683-> 1684 self._reader = parsers.TextReader(src、** kwds)1685 1686#XXX

pandas._libs.parsers.TextReaderのpandas_libs\parsers.pyx .cinit()

pandas._libs.parsers.TextReader._setup_parser_source()のpandas_libs\parsers.pyx

OSError:ファイルからの初期化に失敗しました

XLSファイルである同じフォルダー内の他のファイルには、問題なくアクセスできます。

Pythonライブラリを次のように使用する場合:

import csv
file = csv.reader(open(r'pathtofile')) 

for row in file:
    print(row)
    break

df = pd.read_csv(file, sep=';')

ファイルがロードされ、最初の行が印刷されますが、次のようになります:

ValueError:無効なファイルパスまたはバッファオブジェクトタイプ:

たぶん、私はこのようにread_csvを使用できないので...

できれば最初のPandas関数を機能させるための助けはありますか?残念ながら、CSVを共有することはできません...ドイツ語以外の特殊文字を含めることはできません。ファイルサイズは10 MBです...

23
rStorms

同様の問題に遭遇しました。ダウンロードしたCSVには許可がまったくありませんでした。 pandasからのエラーメッセージはこれを指摘していなかったため、デバッグが困難になりました。

ファイルに読み取り権限があることを確認してください

37
Breck
import pandas as pd
pd.read_csv("your_file.txt", engine='python')

これを試して。それは完全に私のために働いた。

40
Dane Lee

私も同じ問題を抱えていたので、許可を確認する必要があります。

chmod 644 file.csvの後、うまくいきました。

20
Kornel Dylski

名前が中国語であるcsvファイルを読み取ろうとすると、Win10 OSでも同じ問題が見つかります。その後、ファイルの名前をENに変更しても問題はありません。たぶん、ENで完全なcsvファイルパスを確認する必要があります。

OS:Windows 10; Pythonバージョン:3.6.5; Ipython:7.0.1;パンダ:0.23.0

まず、使用するとき

import pandas as pd
answer_df = pd.read_csv('./答案.csv')

私のipythonノートブックは「OSError:ファイルからの初期化に失敗しました」を発生させます。

次に、ファイルの名前をanswers.csvに変更します

import pandas as pd
answer_df = pd.read_csv('./answers.csv')

すべてがOKです。

あなたを助けるために。

3
Sewen Scorpius

日本語のファイル名のファイルをロードしようとしたときも同じ問題が発生しました。

import pandas as pd
result = pd.read_csv('./result/けっこう.csv')

OSError: Initializing from file failed'

次に、引数engine="python"を追加しました。

result = pd.read_csv('./result/けっこう.csv', engine="python")

それは私のために働いた。

2
QaraQoyunlu

Windowsでも同じ問題に遭遇しました。 Dan Leeが提供するソリューションを使用しようとしましたが、行と列で異常な結果が得られていました。これがcsvファイルの日本語文字によるものかどうかはわかりませんが、エンコード形式を明確に定義することで問題が解決しました。

import pandas as pd
pd.read_csv("your_file.txt", engine='python', encoding = "utf-8-sig")
2
kunal Vyas

あなたのcsvファイルは同じ場所(ルート)にあると思います。 csvファイルを読み取り、コンソールにテキストとして表示される結果を取得するだけの場合は、次のようにします。

import csv
with open('your_file.csv', 'r') as csvFile:
    reader = csv.reader(csvFile)
    for row in reader:
        print(row)
csvFile.close()

注:コードはPython 3用です。Python 2を使用する場合、印刷構文は角括弧なしで使用します。これがあなたを助けることを願っています

1
Ranee

os.path.join()を使用してパスを構築してみてください:

import os

rpath = os.path.join('U:','folder','Input','test.csv')
df = pd.read_csv(rpath, sep=';')

親ディレクトリに基づいてパスをトラバースするには、次を使用できます。

os.path.pardir
1
Varun kumar

csvファイルのパーミッションを変更するだけで、うまくいくでしょう

chmod 750 filename.csv(コマンドライン)

または

!chmod 750 filename.csv(jupyterノートブック内)

pandas read_csv OSError:ファイルからの初期化に失敗しました

chmod 600 file.csvを試すことができます。

0
icanxy

ここで同じ問題の異なる解決策。

以前にExcelでファイルをロードしようとしましたが、Excelがクラッシュしましたが、Excelを強制終了すると予期したとおりにロードされるため、ファイルロックを保持している必要があります。

0
gkennos