#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’