2010-10-26 8 views
530

Ich brauche den Speicherort des Home-Verzeichnisses des aktuell angemeldeten Benutzers. Zur Zeit habe ich folgendes benutze Linux: AllerdingsWie bekomme ich das Home-Verzeichnis in Python?

os.getenv("HOME") 

, das nicht unter Windows funktioniert. Was ist der korrekte plattformübergreifende Weg, dies zu tun?

Antwort

927

Sie möchten os.path.expanduser verwenden. Dadurch wird sichergestellt, es funktioniert auf allen Plattformen

from os.path import expanduser 
home = expanduser("~") 

Wenn Sie auf Python sind 3.5+ können Sie verwenden pathlib.Path.home():

from pathlib import Path 
home = str(Path.home()) 
+18

ist zu beachten, dass, wenn der Benutzer an einer Domäne auf Windows angemeldet und hat ihren Profil-Home-Ordner im Active Directory gesetzt, dann wird dies den zugeordneten Netzwerk-Ordner anstelle des lokalen Home-Verzeichnisses melden – scape

+4

@dcolish: lustig, dass jemand namens 'faul' ging die extra Meile .. – Claudiu

+2

@dcolish: Hmm, es ist nicht nur das , zumindest für mich. Es ist viel schwieriger, einige normale Nicht-Code-Block-Texte zu scannen und sie dann in meinem Programm zu verwenden. Ich würde dem Link wahrscheinlich zumindest folgen und sehen, was dort steht. Aber selbst ein winziges Beispiel in einem Codeblock macht es sofort offensichtlich: "Hier ist das Ding, nach dem Sie suchen!" und ich kann es sofort an einer Python REPL testen. Lustig, wie nur ein einfacher Formatierungsunterschied das tun wird ... mein Favorit ist, wenn das Beispiel tatsächlich eine REPL-Sitzung ist – Claudiu

Verwandte Themen