ubuntuusers.de

Python - /home Verzeichnis des jeweiligen Users adressieren

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

penguin

Anmeldungsdatum:
24. November 2006

Beiträge: 274

Hi,

ich hab festgestellt, das z.B. die open-Funktion in Python keine Tilde "~" für das home-Verzeichnis akzeptiert.

>>> file=open("~/test.txt","w")
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
IOError: [Errno 2] No such file or directory: '~/test.txt'
>>>


Wie stell' ich es am besten an, z.B. eine config-Datei in das Verzeichnis des jeweiligen Users des Programms zu schreiben ?

Gruß,

penguin

Flint

Avatar von Flint

Anmeldungsdatum:
25. Oktober 2006

Beiträge: 79

Der Name des Home-Verzeichnisses steckt in der Umgebungsvariable $HOME:

import os
print os.environ.get("HOME")

sollte das Homeverzeichnis des gegenwärtigen Users ausgeben.

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4695

Wohnort: Berlin

Das ersetzen der Tilde ('~') ist eine Funktion der Shell. In den meisten Programmiersprachen muss man da selber aktiv werden. Für die Arbeit mit Pfaden schau Dir mal die Funktionen in os.path an.

In [11]: os.path.expanduser('~/foo.txt')
Out[11]: '/home/new/foo.txt'

In [12]: os.path.expandvars('$HOME/foo.txt')
Out[12]: '/home/new/foo.txt'

penguin

(Themenstarter)

Anmeldungsdatum:
24. November 2006

Beiträge: 274

Prima, das war genau was ich gesucht habe ! D

Vielen Dank,

penguin

Antworten |