PythonでCSVが見つからない|FileNotFoundError

PythonでCSVが見つからない|FileNotFoundError

記事
IT・テクノロジー
カテゴリ:Python

CSVはあるのに、pandasのread_csvで「FileNotFoundError」が出る。そんなときは、Pythonが探している場所を確認します。ファイル名だけを指定した場合、基準は実行時の作業フォルダーです。.pyファイルの置き場所とは限りません。

ここでは、同じパソコン内のPythonとCSVを使う場合を扱います。

実行結果:Linux。長いパスの前半は「…」で省略しています。

FileNotFoundError: [Errno 2] No such file or directory: 'data.csv'

1.探している場所を表示する

エラーが出た読込行の直前に、次の4行を入れます。「data.csv」は、今の読込行で指定している名前へ置き換えてください。

from pathlib import Path
p = Path("data.csv")
print("探している場所:", p.resolve())
print("ファイルがある:", p.is_file())

探している場所: …/work/data.csv
ファイルがある: False
02_探す場所と保存場所_説明図_v2.png
表示された場所と、CSVの保存場所を比べます。Falseなら、名前や場所の違い、またはフォルダーを指定していないか確認します。

2.CSVの保存場所を指定する

場所が違っていたら、pの行をフォルダーからファイル名まで含む指定に変えます。次はWindowsの例です。自分の保存場所へ置き換えてください。

p = Path("C:/作業/data.csv")

Trueになったら、元の読込行のファイル名だけをpに変えます。

df = pd.read_csv(p)

encoding、dtype、区切り文字など、元の設定は残してください。読み込めたら列名と先頭の数行を見て、目的のCSVか確認します。Trueだけでは、正しいファイルを読めたとは判断できません。

Linuxでの読込行と実出力:

df = pd.read_csv(p, encoding="utf-8", dtype={"商品番号": "string"})

探している場所: …/data/data.csv
ファイルがある: True
読込結果: 2行 / 3列
商品番号 商品 数量
 001 りんご 2
 002 みかん 3

まだ見つからないとき

「data.csv.csv」のように拡張子が重なっていないか、クラウド上だけにあってパソコンには保存されていないかを確認します。

同じパソコンで動くJupyter Notebookでも、この4行を使えます。Pythonの入れ直しは不要です。PermissionErrorや文字化けへ変わった場合は、別の問題として確認します。
カスタマイズやご要望がある場合は、お気軽にご相談ください。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す