Ui, ui, ui, bin echt draussen ...
Also z. Zt. arbeite ich an einem Reportgenerator für meine Arbeit (Linux). Das Script liegt in einem Verzeichnis zusammen mit diversen .tex-Templates und soll zusammen mit jinja2 schöne Reporte generieren. Das Script ist verlinkt in einem anderen Verzeichnis, das Teil von PATH ist (genau /home/cm/bin). Da aber das Scriptverzeichnis je nach Rechner an anderen Orten sein kann, muß ich dem Script beibringen in seinem Verzeichnis nach den Templates zu schauen. (Nein, installieren möchte ich nichts, zumindest nicht, während ich entwickle.) Gibt es da eine Möglichkeit?
Gruß,
Christian
Pfad des Scriptes / Moduls?
Code: Alles auswählen
print os.path.dirname(__file__)
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
@/me: Das hilft bei symbolischen Links nicht.
@CM: `os.path.realpath` statt `os.path.dirname` hilft.
@CM: `os.path.realpath` statt `os.path.dirname` hilft.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Vielen Dank - war gerade schon dabei das mit dem Symlink näher zu erläutern, als ich Deine Antwort las, cofi. Funktioniert tadellos - zusammen mit os.path.split bekomme ich, was ich möchte.
Das mit dem Symlink hat man echt gut übersehen können - sorry.
Das mit dem Symlink hat man echt gut übersehen können - sorry.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Wenn dir nur an dem Verzeichnis gelegen ist (was ich wiederum uebersehen hab ), solltest du lieber /me folgen und `dirname` nutzen.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
@CM: Vielleicht könntest Du aus Deinem Python-Code auch ein Package machen und den entsprechenden Loader von `jinja` verwenden!?
Na ja, könnte ich schon. Damit verbunden wäre ja ein bekanntes Verzeichnis für Nicht-Python-Dateien. Ist schon eine Überlegung wert. Danke.