У меня есть небольшая проблема с ~ в моих путях.
Этот пример кода создает некоторые каталоги с именем ~ / some_dir и не понимает, что я хотел создать some_dir в моем домашнем каталоге.
my_dir = "~/some_dir"
if not os.path.exists(my_dir):
os.makedirs(my_dir)
Обратите внимание, что это в системе на основе Linux.
./
для ссылки на ваш текущий каталог и, таким образом,./~
для удаления папки~
в текущем каталоге. Чтобы быть безопаснее, проще просто указать полный путь:rm -rf path/to/bad/dir/~
.rm \~
Преобразование
~/some_dir
в$HOME/some_dir
называется расширением тильды и является общей функцией пользовательского интерфейса. Файловая система ничего не знает об этом.В Python эта функция реализована с помощью os.path.expanduser :
источник
~
. Таким образом, ярлык оболочки дома является неоднозначным и лучше избегать, если вы можете.The file system does not know anything about it.
+1Это, вероятно, потому что Python не Bash и не следует тем же соглашениям. Вы можете использовать это:
источник
Он создаст папку, если не там, иначе он не создаст папку.
ПРИМЕЧАНИЕ : он также будет создавать папки в пути (если требуется)
Эта функция работает как
mkdir -p path/to/folder
источник
Теперь вы можете сделать это как
Пожалуйста, обратитесь к https://stackoverflow.com/a/54190233/6799074 для использования
srblib.abs_path
источник