os.makedirs no entiende "~" en mi camino

Resuelto Johan asked hace 14 años • 3 respuestas

Tengo un pequeño problema ~en mis caminos.

Este ejemplo de código crea algunos directorios llamados ~/some_diry no entiendo que quería crear some_diren 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.

Johan avatar Jan 13 '10 20:01 Johan
Aceptado

Necesitas expandir la tilde manualmente:

my_dir = os.path.expanduser('~/some_dir')
SilentGhost avatar Jan 13 '2010 13:01 SilentGhost

La conversión de ~/some_dira $HOME/some_dirse llama expansión de 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 se implementa mediante os.path.expanduser :

my_dir = os.path.expanduser("~/some_dir")
ddaa avatar Jan 13 '2010 14:01 ddaa

Probablemente se deba a que Python no es Bash y no sigue las mismas convenciones. Puedes usar esto:

homedir = os.path.expanduser('~')
gruszczy avatar Jan 13 '2010 13:01 gruszczy