FileNotFoundError в Python при попытке доступа к файлу с относительными путями в WindowsPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 FileNotFoundError в Python при попытке доступа к файлу с относительными путями в Windows

Сообщение Anonymous »

Я обнаружил ошибку FileNotFoundError при попытке доступа к файлу по относительным путям в Python. Структура моего проекта следующая:

Код: Выделить всё

C:\\Users\\danie\\CAMP-data-processing\
├── data\
│   └── experimental\
│       └── InputFastas\
│           └── combined_proteins_IUPRED.fasta
├── steps_combined\
└── combined_3_4.py  # This is the script I'm running
Полные пути:
Сценарий, который я запускаю, находится по адресу:

Код: Выделить всё

C:\\Users\\danie\\CAMP-data-processing\\steps_combined\\combined_3_4.py
Файл, к которому я пытаюсь получить доступ, находится по адресу:

Код: Выделить всё

C:\\Users\\danie\\CAMP-data-processing\\data\\experimental\\InputFastas\\combined_proteins_IUPRED.fasta
Что я пробовал:
Я пытаюсь использовать относительный путь для доступа к файлу. Ниже приведен код, который я использую для создания пути и проверки существования файла:

Код: Выделить всё

import os

root_directory = "../data/experimental/"
filename = "combined_proteins_IUPRED"
fasta_filename = root_directory + "InputFastas/" + filename + ".fasta"

# Print the path to verify
print(f"Checking path: {fasta_filename}")

# Check if the file exists
if os.path.exists(fasta_filename):
print("File exists!")
else:
print("File does NOT exist.")`
Вывод:
Когда я запускаю этот код, я получаю следующий результат:

Код: Выделить всё

Checking path: ../data/experimental/InputFastas/combined_proteins_IUPRED.fasta
File does NOT exist.
Однако файл определенно существует по этому адресу:
C:\Users\danie\CAMP-data-processing\data\experimental\InputFastas\combined_proteins_IUPRED.fasta
Использование прямой косой черты (/) вместо обратной косой черты (\) для путей в Python.
Использование os.path.join() для создания пути к файлу, чтобы обеспечить правильную обработку косых черт различных операционных системах.
Проверено на наличие опечаток или проблем с чувствительностью к регистру в каталогах и именах файлов.
Для проверки распечатал полный путь, он выглядит правильно: ../data/experimental/InputFastas/combined_proteins_IUPRED. fasta.
Абсолютный путь:
Когда я вручную указываю абсолютный путь, как показано ниже, он работает отлично:

Код: Выделить всё

fasta_filename = "C:/Users/danie/CAMP-data-processing/data/experimental/InputFastas/combined_proteins_IUPRED.fasta"

if os.path.exists(fasta_filename):
print("File exists!")
else:
print("File does NOT exist.")
При абсолютном пути я получаю:
Файл существует!
Вопрос:
Почему в этом случае не работает относительный путь и как устранить ошибку FileNotFoundError при использовании относительных путей в Windows?

Подробнее здесь: https://stackoverflow.com/questions/790 ... e-paths-on
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»