¿Cuál es una forma multiplataforma de obtener el directorio de inicio?
Necesito obtener la ubicación del directorio de inicio del usuario que ha iniciado sesión actualmente. Actualmente, he estado usando lo siguiente en Linux:
os.getenv("HOME")
Sin embargo, esto no funciona en Windows. ¿Cuál es la forma multiplataforma correcta de hacer esto?
Aceptado
Quieres usar os.path.expanduser .
Esto garantizará que funcione en todas las plataformas:
from os.path import expanduser
home = expanduser("~")
Si estás en Python 3.5+ puedes usar pathlib.Path.home() :
from pathlib import Path
home = str(Path.home())
Pero normalmente es mejor no convertir Path.home()
a cadena. Es más natural usarlo de esta manera:
with open(Path.home() / ".ssh" / "known_hosts") as f:
lines = f.readlines()
Descubrí que el módulo pathlib también admite esto.
from pathlib import Path
>>> Path.home()
WindowsPath('C:/Users/XXX')