Seite 1 von 1

Dynamisch eine Variable aus einem import-Skript einlesen

Verfasst: Samstag 17. September 2005, 13:17
von yoxx
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

Verfasst: Samstag 17. September 2005, 14:50
von Leonidas
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.

Verfasst: Samstag 17. September 2005, 17:08
von henning
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)

Verfasst: Samstag 17. September 2005, 22:19
von yoxx
Vielen Dank an euch, hatte das beispiel hier über die Suche gefunden, aber vielelicht war das Problem dort ein etwas anderes