Tengo un pequeño problema con ~ en mis caminos.
Este ejemplo de código crea algunos directorios llamados "~ / some_dir" y no entiendo que quería crear some_dir en mi directorio de inicio.
my_dir = "~/some_dir"
if not os.path.exists(my_dir):
os.makedirs(my_dir)
Tenga en cuenta que esto está en un sistema basado en Linux.
./
para hacer referencia a su directorio actual, y así./~
eliminar la carpeta~
en el directorio actual. Para ser más seguro, lo más fácil es simplemente proporcionar la ruta completa:rm -rf path/to/bad/dir/~
.rm \~
La conversión de
~/some_dir
a$HOME/some_dir
se llama expansión tilde y es una característica común de la interfaz de usuario. El sistema de archivos no sabe nada al respecto.En Python, esta característica es implementada por os.path.expanduser :
fuente
~
. Por lo tanto, el acceso directo de inicio de shell es ambiguo y es mejor evitarlo si puede.The file system does not know anything about it.
+1Probablemente sea porque Python no es Bash y no sigue las mismas convenciones. Puedes usar esto:
fuente
Creará una carpeta si no existe, no creará una carpeta.
NOTA : también creará carpetas en la ruta (si es necesario)
Esta función funciona como
mkdir -p path/to/folder
fuente
Ahora puedes hacerlo como
Consulte https://stackoverflow.com/a/54190233/6799074 para el uso de
srblib.abs_path
fuente