Globale Variablen für Ausführung setzen

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
NoRulez
User
Beiträge: 36
Registriert: Donnerstag 1. November 2007, 15:31

Mittwoch 11. Juni 2008, 15:39

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]
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Mittwoch 11. Juni 2008, 16:06

Was spricht gegen eine ordentliche Template-Sprache?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Mittwoch 11. Juni 2008, 16:33

Was spricht gegen Parameterübergabe?
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Mittwoch 11. Juni 2008, 17:57

Dumpe ein Pickle in das stdin deines Prozesses. Aber insgesamt klingt das ziemlich krank was du da machst :D
TUFKAB – the user formerly known as blackbird
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 11. Juni 2008, 18:10

Man könnte natürlich auch überlegen Umgebungsvariablen zu nutzen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Mittwoch 11. Juni 2008, 18:18

Fehlt jetzt noch irgend etwas außer Code-Manipulation? :D
lunar

Donnerstag 12. Juni 2008, 17:52

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 ;)
Antworten