Seite 1 von 2

home verzeichnis windows

Verfasst: Dienstag 3. Juni 2008, 08:58
von The Hit-Man
ich brauche den homepfad von dem benutzer, der gerade angemeldet ist, das ich userdaten wegschreiben muß. habe im netz und auch hier, diesen befehl gefunden, mit dem ich den home-pfad ermitteln sollte:

Code: Alles auswählen

print os.environ['HOME']
bekomme aber eine fehlermeldung: KeyError `HOME`

weiß jemand rat?

Verfasst: Dienstag 3. Juni 2008, 09:16
von The Hit-Man
das hier scheint zu funktionieren:

Code: Alles auswählen

print os.path.expanduser('~')

Re: home verzeichnis windows

Verfasst: Dienstag 3. Juni 2008, 11:23
von jens
The Hit-Man hat geschrieben:

Code: Alles auswählen

print os.environ['HOME']
bekomme aber eine fehlermeldung: KeyError `HOME`
Starte mal in der Eingabeaufforderung einfach set oder in Python mit print os.environ alle vorhandenen Variablen anzeigen lassen... expanduser zu nutzten macht da aber schon Sinn...

Verfasst: Dienstag 3. Juni 2008, 11:41
von The Hit-Man
Starte mal in der Eingabeaufforderung einfach set oder in Python mit print os.environ alle vorhandenen Variablen anzeigen lassen
das hatte ich vorher auch schon probiert. das funktionierte auch ;)

Verfasst: Dienstag 3. Juni 2008, 12:46
von jens
Also bei mir gibt es kein HOME... Aber HOMEDRIVE und HOMEPATH oder USERPROFILE...

Verfasst: Dienstag 3. Juni 2008, 15:21
von The Hit-Man
achso. ne, da hatte ich gar nicht nach gesehen. nur geschaut, ob der befehl klappte.

Verfasst: Mittwoch 4. Juni 2008, 08:16
von The Hit-Man
komisch, wenn ich diesen Befehl unter Windows 2k benutze:

Code: Alles auswählen

print os.path.expanduser('~') 
komme ich auf Platte C:\
wie kommt denn das?

Verfasst: Mittwoch 4. Juni 2008, 09:09
von Hyperion
Also HOMEPATH und USERPROFILE scheinen doch genau das zu beeinhalten, was Du suchst! (Zumindest bei mir unter XP)

Verfasst: Mittwoch 4. Juni 2008, 09:10
von jens
On Windows, only "~" is supported; it is replaced by the environment variable HOME or by a combination of HOMEDRIVE and HOMEPATH.
Was ist in Win2k gesetzt?

Sieht IMHO nach einem Bug in Python aus.

Verfasst: Mittwoch 4. Juni 2008, 09:15
von The Hit-Man
On Windows, only "~" is supported; it is replaced by the environment variable HOME or by a combination of HOMEDRIVE and HOMEPATH.
Genau das habe ich bei Google auch gefunden. Aber was mache ich denn jetzt? Ich muß meinen Home-Pfad auch unter Windows 2000 haben, weil es geht um eine Konfigdatei, die ja in das Userverzeichnis kommen soll.
Jetzt stelle ich mir aber noch die Frage, wie sieht das unter Win98 und so weiter aus ( obwohl das wäre ja jetzt erst mal latte ).

Verfasst: Mittwoch 4. Juni 2008, 09:16
von jens
Zeig uns doch erstmal, was in HOME, HOMEDRIVE und HOMEPATH unter Win2k und Win98 gesetzt ist...

Verfasst: Mittwoch 4. Juni 2008, 09:25
von The Hit-Man
HOME = gibt es nicht
HOMEDRIVE = C:
HOMEPATH = \

aber APPDATA sieht gut aus. Die zeigt genau da hin, wo ich auch meine KonfigDatei haben möchte. Mal sehen, wie ich die auslesen kann.

EDIT:
was passiert, wenn du unter XP, diesen befehl eintippst?

Code: Alles auswählen

print os.environ['APPDATA']

Verfasst: Mittwoch 4. Juni 2008, 09:26
von jens
The Hit-Man hat geschrieben:HOME = gibt es nicht
HOMEDRIVE = C:
HOMEPATH = \
Hm. Damit kann man dann eigentlich nicht den richtigen Pfad zusammen bauen. Dann kann Python da nix für...

Verfasst: Mittwoch 4. Juni 2008, 09:48
von The Hit-Man

Code: Alles auswählen

print os.environ['APPDATA']
hiermit könnte ich das doch, oder? Mich hätte jetzt interessiert, was bei Deinem System da raus kommt.
[/quote]

Verfasst: Mittwoch 4. Juni 2008, 09:53
von jens
Hab kein Win2k laufen ;)

Unter WinXP ist APPDATA == d:\Benutzerprofile\UserName\Anwendungsdaten
Also nicht das User Profile Verzeichnis.

Verfasst: Mittwoch 4. Juni 2008, 09:58
von The Hit-Man
ja genau das sollte ja reichen. Genau da speichert zum Beispiel auch PidGin unter Windows seine Sachen ab. Jetzt muß ich mir den Pfad nur zusammen bauen. Wie nutze ich das? Wenn ich den Pfad verlängern will, muß ich mit "\" arbeiten, oder mit "\\" ?

Beim ersten start meines Programms, soll eine XML Datei in das Userverzeichnis geschrieben werden. Habe es einfach mal so gelöst, hoffe, es ist richtig und er findet den Pfad.

Code: Alles auswählen

shutil.copy ("data.xml", ((os.environ['APPDATA']+'\\webolg\\data.xml'))
[/quote]

Verfasst: Mittwoch 4. Juni 2008, 10:03
von EyDu
The Hit-Man hat geschrieben:Jetzt muß ich mir den Pfad nur zusammen bauen.
os.path.join

Verfasst: Mittwoch 4. Juni 2008, 10:03
von jens
Pfade immer mit os.path.join zusammen bauen!

Verfasst: Mittwoch 4. Juni 2008, 10:07
von The Hit-Man
hubs, das sagt mir im Moment gar nichts :( haste nen Beispiel?

Verfasst: Mittwoch 4. Juni 2008, 10:09
von Hyperion