os.makedirs Python не понимает “~” в моем пути

У меня есть немного проблемы с ~ в моих путях.

Этот пример кода создает некоторые каталоги, названные "~/some_dir", и не понимайте, что я хотел создать some_dir в своем корневом каталоге.

my_dir = "~/some_dir"
if not os.path.exists(my_dir):
    os.makedirs(my_dir)

Обратите внимание, что это находится в основанной на Linux системе.

136
задан Peter Mortensen 23 May 2018 в 17:50
поделиться

3 ответа

Вам нужно расширить тильду вручную:

my_dir = os.path.expanduser('~/some_dir')
240
ответ дан 23 November 2019 в 23:38
поделиться

Это, вероятно, потому что Python не Bash и не следит за тем же конвенциями. Вы можете использовать это:

homedir = os.path.expanduser('~')
15
ответ дан 23 November 2019 в 23:38
поделиться

Преобразование ~/some_dir в $HOME/some_dir называется tilde expansion и является общей функцией пользовательского интерфейса. Файловая система ничего об этом не знает.

В Python эта возможность реализована с помощью os.path.expanduser:

my_dir = os.path.expanduser("~/some_dir")
65
ответ дан 23 November 2019 в 23:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: