Такого файла или каталога нет, но все файлы находятся в одной папке

#python #selenium #directory #path

Вопрос:

Я получаю No such file or directory: 'SnP1000_TICKR.csv' сообщение об ошибке, но все мои файлы находятся в следующей папке:

введите описание изображения здесь

и я вызываю файл сюда

введите описание изображения здесь

который выполняется на этом фрагменте кода:

 def finVizEngine(input,output):
    import chromedriver_autoinstaller
    chromedriver_autoinstaller.install()  # Check if the current version of chromedriver exists
                                      # and if it doesn't exist, download it automatically,
                                      # then add chromedriver to path

    driver = webdriver.Chrome()
    ipo_df = pd.DataFrame({})
    openFinViz()
    with open(input, 'r') as IPO_List:
        csv_reader = reader(IPO_List)
 

Это работало раньше, но потом я загрузил файлы в Github и начал запускать файлы из vscode вместо pycharm и начал получать кучу ошибок, но, честно говоря, не понимаю, что не так. Любая помощь была бы потрясающей,

Лучший Жоао

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

1. Python не волнует, в каком каталоге находится скрипт. Все, что волнует Python, — это ваш текущий рабочий каталог , который, вероятно, является корнем вашего проекта.

2. Как именно вы запускаете свой скрипт? например, ПРОТИВ отладчика кода, ПРОТИВ интегрального терминала кода?

3. Скорее всего, вам нужно это сделать finVizEngine('Scripts/SnP1000_TICKR.csv, SnP1000_DATA.csv) , так SNP1000 как это ваша базовая папка проекта

4. Кроме того, называть переменную input -плохая практика, так как это имя встроенной функции.

5. всегда указывайте код, данные и полное сообщение об ошибке в виде текста (не скриншот, не ссылка) в вопросе (не в комментарии).

Ответ №1:

Сначала проверьте, в какой папке он запускает код

 import os

print( os.getcwd() )
 

cwd означает Current Working Directory .

Если он работает в другой папке, то у вас есть скрипт, а затем он также выполняет поиск csv в другой папке.

Самый простой способ-это использовать "/full/path/to/SnP1000_TICKR.csv" .

Но более полезный метод — получить путь к папке с script помощью-вот так

 BASE = os.path.abspath(os.path.dirname(__file__))
 

и используйте его для создания полного пути к файлу csv

 input_full_path  = os.path.join(BASE, "SnP1000_TICKR.csv") 
output_full_path = os.path.join(BASE, "SnP1000_DATA.csv")

finVizEngine(input_full_path, output_full_path)
 

кстати:

Если вы будете хранить csv в подпапке data , то вам понадобится

 input_full_path = os.path.join(BASE, "data", SnP1000_TICKR.csv")