[gelöst] getcwd() bei start über verknüpfung

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.
use_opensue
User
Beiträge: 33
Registriert: Mittwoch 15. August 2007, 10:43

[gelöst] getcwd() bei start über verknüpfung

Beitragvon use_opensue » Mittwoch 12. März 2008, 12:13

Hallo,

je nachdem ob ich ein Skript per [code=]./skript.py[/code] oder über eine Verknüpfung starte ändert sich die Ausgabe von getcwd().

Das Problem dabei ist, dass das Skript Dateien anlegt und diese sollen immer im Programmverzeichniss landen.

Unter Windows ist das auch der Fall, unter Linux hingegen landen die Dateien beim Skriptaufruf über die Verknüpfung immer im Homeverzeichniss..

Wie kann ich das abstellen? Wie finde ich heraus, in welchem Ordner sich das Skript befindet?

Einfach einen Pfad fest vorgeben will ich nicht, da ich nicht sicherstellen
kann(will), das jeder, dem ich das Skript gebe es auch an diese Stelle kopiert.
Zuletzt geändert von use_opensue am Mittwoch 12. März 2008, 15:36, insgesamt 1-mal geändert.
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Beitragvon Zap » Mittwoch 12. März 2008, 12:27

hiermit :)

Code: Alles auswählen

In [1]: print __file__
C:\Python25\lib\site-packages\IPython\FakeModule.pyc


In deinem Fall würde das heißen:

Code: Alles auswählen

import os
cwd = os.path.dirname(__file__)
use_opensue
User
Beiträge: 33
Registriert: Mittwoch 15. August 2007, 10:43

Beitragvon use_opensue » Mittwoch 12. März 2008, 13:20

Danke!

Nur noch eins:

Code: Alles auswählen

print "cwd ", os.getcwd()
print "real cwd ", os.path.dirname(__file__)


Warum wird beim 2. print Befehl nichts ausgegeben, wenn ich das Skript mittels
[code=]./skript.py[/code] starte?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Mittwoch 12. März 2008, 13:24

Wird da wirklich nichts ausgegeben? *mitzaunpfahlwink*
Sonst probiere mal

Code: Alles auswählen

print "real abs cwd", os.path.abspath(__file__)


Gruß,
Christian
use_opensue
User
Beiträge: 33
Registriert: Mittwoch 15. August 2007, 10:43

Beitragvon use_opensue » Mittwoch 12. März 2008, 14:01

Oh je, :evil:

mit dem richtigen Kode-lesen habe ich heute wohl so meine Probleme.
Wird da wirklich nichts ausgegeben? *mitzaunpfahlwink*

Ich habs, brauch abspath nicht testen...

Danke

use_opensu(s)e
(im Erdloch versinkt)
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Mittwoch 12. März 2008, 14:14

Alternative, statt __file__ -> sys.argv[0] nehmen

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]