Seite 1 von 1

Globale Variablen für Ausführung setzen

Verfasst: Mittwoch 11. Juni 2008, 15:39
von NoRulez
Hey @all,

Im moment führe ich von einem Python script ein anderes aus, speicher die ausgabe in eine temporäre Datei und lies diese danach, funktioniert alles einwandfrei. Jetzt zu meinem Problem:

Ich möchte für das aufrufende Script globale Python Variablen definieren, mit denen der script das arbeiten kann. Beispiel:
TestScript:

Code: Alles auswählen

#!/usr/bin/env python
print "Test1"
print "Test2"
print "Test3"
Executer:

Code: Alles auswählen

# Execute script
cmd = "./script.py' > /tmp/PYTMP.ydYV9Z 2>&1"
os.system(cmd)
tmp_file = "/tmp/PYTMP.ydYV9Z"

# Get results
result = file(tmp_file).readlines()

for line in result:
    print line,
Ausgabe ist dann:

Code: Alles auswählen

Test1
Test2
Test3
Haben will ich dann gerne sowas:
TestScript:

Code: Alles auswählen

#!/usr/bin/env python
print "Sum: ", (IN['a'] + IN['b'])
print "Test1"
print "Test2"
print "Test3"
Executer:

Code: Alles auswählen

# Execute script
cmd = "./script.py' > /tmp/PYTMP.ydYV9Z 2>&1"
os.system(cmd)
tmp_file = "/tmp/PYTMP.ydYV9Z"

[b]IN = {'a': 2, 'b': 3} # Das soll irgendwie in den globalen Namensbereich des ausführenden scripts kommen. Damit es vondort aus bearbeitet werden kann.[/b]

# Get results
result = file(tmp_file).readlines()

for line in result:
    print line,
Ausgabe ist dann:

Code: Alles auswählen

Sum: 5
Test1
Test2
Test3
Vielen Dank im Voraus

Lg NoRulez[/code]

Verfasst: Mittwoch 11. Juni 2008, 16:06
von audax
Was spricht gegen eine ordentliche Template-Sprache?

Verfasst: Mittwoch 11. Juni 2008, 16:33
von Hyperion
Was spricht gegen Parameterübergabe?

Verfasst: Mittwoch 11. Juni 2008, 17:57
von mitsuhiko
Dumpe ein Pickle in das stdin deines Prozesses. Aber insgesamt klingt das ziemlich krank was du da machst :D

Verfasst: Mittwoch 11. Juni 2008, 18:10
von Leonidas
Man könnte natürlich auch überlegen Umgebungsvariablen zu nutzen.

Verfasst: Mittwoch 11. Juni 2008, 18:18
von Hyperion
Fehlt jetzt noch irgend etwas außer Code-Manipulation? :D

Verfasst: Donnerstag 12. Juni 2008, 17:52
von lunar
mitsuhiko hat geschrieben:Dumpe ein Pickle in das stdin deines Prozesses. Aber insgesamt klingt das ziemlich krank was du da machst :D
Ach, angesichts von os.system und Shell Umleitungen in unsichere temporäre Dateien kanns doch eigentlich nicht schlimmer werden ;)

@OP
Ich glaube, wir sind an dem Punkt angelangt, an dem du uns mal erzählen solltest, was du eigentlich vor hast, bzw. was der Zweck des Ganzen ist. Dann kann man dir nämlich eventuell eine Alternative aufzeigen, die eleganter, sauberer und einfach besser ist ;)