home verzeichnis windows

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

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?
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

das hier scheint zu funktionieren:

Code: Alles auswählen

print os.path.expanduser('~')
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

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 ;)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Also bei mir gibt es kein HOME... Aber HOMEDRIVE und HOMEPATH oder USERPROFILE...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

achso. ne, da hatte ich gar nicht nach gesehen. nur geschaut, ob der befehl klappte.
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

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?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Also HOMEPATH und USERPROFILE scheinen doch genau das zu beeinhalten, was Du suchst! (Zumindest bei mir unter XP)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

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 ).
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Zeig uns doch erstmal, was in HOME, HOMEDRIVE und HOMEPATH unter Win2k und Win98 gesetzt ist...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

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']
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

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]
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hab kein Win2k laufen ;)

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

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

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]
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

The Hit-Man hat geschrieben:Jetzt muß ich mir den Pfad nur zusammen bauen.
os.path.join
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Pfade immer mit os.path.join zusammen bauen!

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

hubs, das sagt mir im Moment gar nichts :( haste nen Beispiel?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Antworten