Eu tenho um pequeno problema com ~ nos meus caminhos.
Este exemplo de código cria alguns diretórios chamados "~ / some_dir" e não entende que eu queria criar some_dir no meu diretório pessoal.
my_dir = "~/some_dir"
if not os.path.exists(my_dir):
os.makedirs(my_dir)
Observe que isso está em um sistema baseado em Linux.
./
para fazer referência ao seu diretório atual e, assim,./~
remover a pasta~
no diretório atual. Para ser mais seguro, é mais fácil de simplesmente fornecer o caminho completo:rm -rf path/to/bad/dir/~
.rm \~
A conversão de
~/some_dir
para$HOME/some_dir
é chamada de expansão til e é um recurso comum da interface do usuário. O sistema de arquivos não sabe nada sobre isso.No Python, esse recurso é implementado pelo os.path.expanduser :
fonte
~
. Portanto, o atalho inicial do shell é ambíguo e evitado, se possível.The file system does not know anything about it.
+1Provavelmente porque o Python não é Bash e não segue as mesmas convenções. Você pode usar isto:
fonte
Ele criará uma pasta, caso contrário, não criará uma pasta.
NOTA : também criará pastas no caminho (se necessário)
Esta função funciona como
mkdir -p path/to/folder
fonte
Agora você pode fazer isso como
Consulte https://stackoverflow.com/a/54190233/6799074 para obter o uso de
srblib.abs_path
fonte