Код: Выделить всё
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