Самый хороший способ найти текущий каталог файла в Python
Я ищу замену
import os
package_dir = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(package_dir,'foo.csv')
Мой рабочий путь не путь к файлу. Поэтому, когда я хочу загрузить файл, мне нужен способ генерирования относительного пути по сравнению с моим рабочим каталогом.
Я хочу обновить до pathlib (или чего-то еще). Но какой самый лучший способ сделать то же самое?
Я нашел /questions/7019377/kak-pravilno-opredelit-tekuschij-katalog-skriptov/7019430#7019430, но я не думаю, что это решение выглядит лучше, чем мой нынешний способ.
Примечание:
Это не дубликат Как правильно определить текущий каталог скриптов?, поскольку я явно спросил о самом хорошем способе. Большинство решений в другом посте выглядят не очень красиво или уже упоминалось в моем вопросе. Решение
Path(__file__).with_name("foo.csv")
Приведенное здесь намного лучше, чем решения, приведенные в другом вопросе, так как это легко понять и действительно питонно решить. Если бы этот вопрос был повторным, на другой пост был бы найден не менее хороший ответ.
1 ответ
Если вы хотите сделать то же самое с pathlib
, это может выглядеть так:
from pathlib import Path
package_dir = Path(__file__).parent.absolute()
file_path = package_dir.joinpath("foo.csv")
Если вы не меняете текущий рабочий каталог, вам может не понадобиться / не хотеть использовать .absolute()
,
Если вам на самом деле не нужно знать, что package_dir
было бы, вы также можете просто получить file_path
непосредственно:
file_path = Path(__file__).with_name("foo.csv").absolute()
Что дает вам новое Path
заменить имя файла.