FileNotFoundError: [Errno 2] Нет такого файла или каталога

Я пытаюсь открыть файл CSV, но по какой-то причине python не может его найти.

Вот мой код (это просто простой код, но я не могу решить проблему):

import csv

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

Ответы

Ответ 1

Вы используете относительный путь, что означает, что программа ищет файл в рабочем каталоге. Ошибка говорит вам, что в рабочем каталоге нет файла этого имени.

Попробуйте использовать точный или абсолютный путь.

Ответ 2

Когда вы открываете файл с именем 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")

Ответ 3

Используйте точный путь.

import csv

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

Ответ 4

Предположим, что у нас есть script в "c:\script.py", которые содержат:

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

Давайте скажем, что файл index.html также находится в том же каталоге "c:\index.html" когда я выполняю script из cmd (или оболочки)

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>'

Вот почему предпочтительнее использовать абсолютный путь.

Ответ 5

попробуйте удалить ".csv" из имени файла или добавить дополнительный файл в открытая функция. работал на меня.