Hallo zusammen!
Ich haben folgendes Problem: Ich wollte in Script einige zusätzlich Dateien aus dem gleichen Verzeichnis verwenden, aber ohne absolute Verzeichnisangabe. Wenn ich das Scirpt direkt aufrufen, gibt es kein Problem, da die anderen Dateien im gleichen Verzeichnis! Aber, wenn es aus einem Framework, dann sieht schrecklich aus:
Ich habe ad hoc so gemacht:
filename = inspect.getabsfile(eineMethodeAusEinerKlasse)
==> dann das entsprechende Verzeichnis herausfiltern und anschließend mit anderen Dateien zusammensetzen!
Zufällig habe ich gesehen, es gibt auch Attribute wie im_func, im_class, aber ich wisse nicht wie ich in meinen Code verwenden!
Bitte um Hilfe oder einen Hinweis
Boostpy
Spezielle Attribute verwenden wie im_func, im_class
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi!Anonymous hat geschrieben:Bitte um Hilfe oder einen Hinweis
Mit "__file__" bekommst du den Dateinamen des Modules. Wenn du das noch durch "os.abspath()" und "os.dirname()" jagst, dann hast du den Ordner des Moduls. Den Rest deines Beitrages müsste ich wohl öfter durchlesen um ihn zu verstehen.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hi gerold,
mit __file__ geht es bei mir leider nicht. Es ist nur den einzigen Methoden verfügbar, da mein Framework alle Methoden gesammelt (UnittestCases) hat. Oder habe ich falsch verstanden?
mfg
Boostpy
mit __file__ geht es bei mir leider nicht. Es ist nur den einzigen Methoden verfügbar, da mein Framework alle Methoden gesammelt (UnittestCases) hat. Oder habe ich falsch verstanden?
mfg
Boostpy
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Hier ein Snippet aus einem meiner Programme, das könnte dich weiterbringen:
Code: Alles auswählen
def parser_dir(self):
"""Gets the path of the directory where the parsers can be found."""
try:
appdir = os.path.dirname(__file__)
if '.zip' in appdir:
# frozen exe
appdir = os.path.dirname(sys.argv[0])
except NameError:
# frozen exe, so no __file__
appdir = os.path.dirname(sys.argv[0])
pdir = os.path.join(appdir, 'parsers')
return pdir
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hi Leonidas,
danke für das Codesegment. Ich glaube, es hilft mir nicht weiter.
In den Moment, wann ich den Modulnamen brauche, wird nur der Name einer Methode noch verfügbar (sonst muss ich das Framework anpassen!). So brauche ich zu wissen, wie ich am einfachsten ermitteln kann, wo das entsprechende Modul herkommt?
Die Anweisung
kann mir helfen, aber ich wollte wissen,
wie man im_func im_class verwenden kann?
Danke für die Hilfe!
Boostpy
danke für das Codesegment. Ich glaube, es hilft mir nicht weiter.
In den Moment, wann ich den Modulnamen brauche, wird nur der Name einer Methode noch verfügbar (sonst muss ich das Framework anpassen!). So brauche ich zu wissen, wie ich am einfachsten ermitteln kann, wo das entsprechende Modul herkommt?
Die Anweisung
Code: Alles auswählen
filename = inspect.getabsfile(eineMethodeAusEinerKlasse)
wie man im_func im_class verwenden kann?
Danke für die Hilfe!
Boostpy