Python не находит файл

#python #file

Вопрос:

Я изучаю Python (с помощью книги ускоренного курса Python) и в настоящее время работаю с климатическими данными NOAA, но каждый раз, когда я пытаюсь импортировать файл, Python его не находит. У меня тоже была эта ошибка для других программ, и я действительно не могу ее решить. Кто-нибудь может мне помочь, пожалуйста ? Вот мой код :

 import csv

filename = 'new-york-weather_60-20.csv'
try :
    with open(filename) as f:
        reader = csv.reader(f)
        header_row = next(reader)
        print(header_row)

except FileNotFoundError:
    print(f"Sorry, the file {filename} does not exist.")
 

Комментарии:

1. попробуйте указать полный путь к файлу, например r'C:My Documents<file>' , или где бы он ни находился. Если он не находится в том же каталоге, что и ваш скрипт на python, он его не найдет.

2. Что имеет значение, так это текущий каталог ядра python, а не каталог скрипта. Вы можете проверить это с import os; os.getcwd() помощью («получить текущий рабочий каталог»). Если файл находится в этом каталоге, он должен работать.

3. Добро пожаловать в Stack Overflow. Знаете ли вы, что такое текущий рабочий каталог ? Вы видите эту фразу в книге? Если вы это сделаете, пожалуйста, прочтите этот раздел очень внимательно. В противном случае попробуйте ввести этот термин в поисковую систему. (Чтобы понять проблему: своими словами, где, по вашему мнению, Python должен искать этот файл на жестком диске и почему?)

4. Импортируйте os и поместите print(os.listdir('.')) , чтобы увидеть, какие файлы находятся в текущем рабочем каталоге.

Ответ №1:

Интерпретатор Python предполагает, что файл 'new-york-weather_60-20.csv' находится в том же каталоге (папке), где в данный момент «находится» python, т. Е. в текущем рабочем каталоге.

Вы можете просмотреть текущий рабочий каталог с помощью os модуля.

 import os
print(os.getcwd())
 

Это должен быть путь, по которому csv находится файл. Если это не так, вы можете либо переместить файл в то же место, либо переместить текущий рабочий каталог в путь, в котором находится файл

 import os
os.chdir('/the/location/on/your/computer/wherethefileislocated')
filename = 'new-york-weather_60-20.csv'

# You can check if the file is located in this directory
if os.path.exists(filename): # only if this file exists in this location do we continue
    print('The file exists!')
    with open(filename) as f:
       # your code goes here
else:
    print('The file does not exist in this directory')
 

Комментарии:

1. Я сохранял некоторые из своих программ в неправильном файле, и, думаю, путь был недостаточно точным. Я написал правильный путь к файлу, и это сработало. Спасибо!