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

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

Сообщение Anonymous »

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

├── data

│ └── экспериментальный

│ └── InputFastas

│ └── комбинированные_протеины_IUPRED.fasta
├── шаги_комбинированные

└ ── Combined_3_4.py # Это скрипт, который я запускаю.
Полные пути:
Сценарий, который я запускаю, находится по адресу:
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(f"Checking path: {fasta_filename}")
Проверьте, существует ли файл

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

if os.path.exists(fasta_filename):     print("File exists!") else:     print("File does NOT exist.")
Вывод:
Когда я запускаю этот код, я получаю следующий результат:
Проверка пути: ../data/experimental/InputFastas/combined_proteins_IUPRED .fasta
Файл НЕ существует.
Однако файл определенно существует в этом месте:
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.")With the absolute path, I get:`
Файл существует!
**
Вопрос:
Почему в этом случае не работает относительный путь и как могу ли я устранить ошибку FileNotFoundError при использовании относительных путей в Windows?**

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

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

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

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

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

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

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