Dynamisch eine Variable aus einem import-Skript einlesen

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.
Antworten
yoxx
User
Beiträge: 8
Registriert: Sonntag 11. September 2005, 20:57

Hallo, habe folgendes Problem:

ich importiere dynamisch ein Skript:
exec "import %s" % importSkript

In dem Skript wird eine Variable 'content' mit Inhalt belegt, den ich nun auslesen möchte

myArray['varName'] = importSkript.content

was natürlich nicht geht, weil es das Skript "importSkript" ja gar nicht gibt, sondern nur den Inhalt von importSkript.


Wie kann man dies lösen?

mfg Daniel
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Module importiert man doch nicht mit exec!

Du kannst dazu doch einfach sowas wie:

Code: Alles auswählen

scriptname = 'os'
mod = __import__(scriptname)
print mod.content
Aber gut dass du fragst, jetzt weiß ich noch was in der ModulImporte-Wiki-Seite noch fehlt. Muss ich dann mal beizeiten erweitern.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

Btw: Wenn du exec verwendest um relativ "normale" Sachen zu machen ist das ein sehr sicheres Zeichen dafür, dass es wesentlich eleganter geht.
Die einzige Situation in der ich exec verwenden würde ist die, wenn es wirklich darum geht ein anderes skript zu interpretieren und selbst da gibts meist bessere Wege! (Je nach Situation versteht sich)
yoxx
User
Beiträge: 8
Registriert: Sonntag 11. September 2005, 20:57

Vielen Dank an euch, hatte das beispiel hier über die Suche gefunden, aber vielelicht war das Problem dort ein etwas anderes
Antworten