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_dira$HOME/some_dirse 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/folderfuente
Ahora puedes hacerlo como
Consulte https://stackoverflow.com/a/54190233/6799074 para el uso de
srblib.abs_pathfuente