Python - os.makedirs не понимают ~ на моем пути?

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

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

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

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

Ответ 1

вам нужно развернуть тильду вручную:

my_dir = os.path.expanduser('~/some_dir')

Ответ 2

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

В Python эта функция реализована os.path.expanduser:

my_dir = os.path.expanduser("~/some_dir")

Ответ 3

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

homedir = os.path.expanduser('~')