Самый хороший способ найти текущий каталог файла в 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 заменить имя файла.

Другие вопросы по тегам