Проблемы при получении абсолютного пути?

#python #python-3.x #io #path

#python #python-3.x #io #путь

Вопрос:

У меня есть следующий файл, который я хотел бы прочитать, как вы можете видеть, он неполный:

 file = 'dir2/file.hdf5'
  

Тем не менее, я хотел бы получить полный путь file к (*):

 '/home/user/git_hub_repo/dir1/dir2/file.hdf5'
  

Однако, когда я делаю:

 from pathlib import Path
filename = Path('dir2/file.hdf5').resolve()
print(filename)
  

Я получаю:

 '/home/user/git_hub_repo/dir2/file.hdf5'
  

Что неверно, потому dir1 что в полученном пути отсутствует a, как я могу получить (*) путь

Обратите внимание, что в моем терминале я нахожусь в:

 /home/user/git_hub_repo/
  

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

1. Извините, python пока не поддерживает чтение мыслей. Как вы ожидаете, что он узнает, что вы хотите dir1 там?

2. resolve() просто присоедините текущий каталог к указанному вами пути. Он волшебным образом не знает, что вы действительно имели в виду этот файл с похожим именем .

3. Я знаю … какой правильный способ получить этот путь?

4. Каков результат filename.is_file() ? Вероятно, это false, поскольку Path() начинается с вашего текущего каталога.

5. filename = Path('dir1/dir2/file.hdf5').resolve()

Ответ №1:

Если ваш текущий каталог

/home/user/git_hub_repo/

и ваш файл находится в

/home/user/git_hub_repo/dir1/ dir2/file.hdf5

Вы должны изменить это

file = ‘dir2/file.hdf5’

Для

file = ‘dir1 / dir2/file.hdf5’