web-dev-qa-db-ja.com

FileNotFoundError:[Errno 2]そのようなファイルまたはディレクトリはありません

CSVファイルを開こうとしていますが、何らかの理由でpythonが見つかりません。

ここに私のコードがあります(単なるコードですが、問題を解決できません):

import csv

with open('address.csv','r') as f:
    reader = csv.reader(f)
    for row in reader:
        print row
36
user3266816

address.csvという名前のファイルを開くと、ファイルが現在の作業ディレクトリにあることをopen()関数に伝えています。これは相対パスと呼ばれます。

それが何を意味するのかを知るために、これをコードに追加してください:

import os

cwd = os.getcwd()  # Get the current working directory (cwd)
files = os.listdir(cwd)  # Get all the files in that directory
print("Files in '%s': %s" % (cwd, files))

これにより、現在の作業ディレクトリとその中のすべてのファイルが出力されます。

open()関数にファイルの場所を伝える別の方法は、絶対パスを使用することです。例:

f = open("/Users/foo/address.csv")
34
tsroten

相対パスを使用しています。つまり、プログラムは作業ディレクトリでファイルを検索します。このエラーは、作業ディレクトリにその名前のファイルがないことを示しています。

正確なパスまたは絶対パスを使用してみてください。

25
David Heffernan

絶対パスを渡してもエラーが発生する場合は、ファイルに有効な名前があるかどうかを確認する必要があります。私にとっては、ファイル名に「/」を含むファイルを作成しようとしていました。 「/」を削除するとすぐに、ファイルを作成できました。

3
Rajat Soni

ファイル名から「.csv」を削除するか、open関数に追加してください。私のために働いた。

3
Ahmad Mohammad
with open(fpath, 'rb') as myfile:
    fstr = myfile.read()

ファイルが空ですであるため、このエラーが発生します。この答えは、この質問に対する正しい答えではないかもしれませんが、開発者に私のようなヒントを与えるはずです。

2
Bowen Xu

正確なパスを使用してください。

import csv

with open('C:\path\address.csv','r') as f:
    reader = csv.reader(f)
    for row in reader:
        print row
2
Dinesh

"c:\ script.py"に以下を含むスクリプトがあるとしましょう:

result = open("index.html","r")
print(result.read())

Cmd(またはシェル)からスクリプトを実行すると、index.htmlファイルも同じディレクトリ「c:\ index.html」にあるとしましょう

C:\Users\Amine>python c:\script.py

エラーが発生します:

FileNotFoundError: [Errno 2] No such file or directory: 'index.html'

それは、「index.html」が「C:\ Users\Amine>」という作業ディレクトリにないためです。動作させるには、作業ディレクトリを変更する必要があります

C:\python script.py

'<html><head></head><body></body></html>'

これが絶対パスを使用することが望ましい理由です。

1
Aouffen