Seite 1 von 1

mit os.spawnv() und __main__?

Verfasst: Sonntag 9. März 2008, 10:53
von meneliel
Einen wunderschönen Guten Tag :)

Habe mal wieder eine ganz allgemeine Strukturierungsfrage:

wenn ich in einem Skript A mit os.spawnv() eine anderes Skript B aufrufe, ist dieses Skript B, dann main?

Hab bei ein paar Skripten nun vollkommen den Überblick verloren und ist alles etwas unübersichtlich und das Skript B beinhaltet bisher keinerlei Funktionen, einfach nur Code hintereinander, wäre daher jetzt irgendwie sinnvoll zu wissen. Bin nun gerade am aufräumen und strukturieren ;-)

Wenn es als main gestartet wird, würde das einiges vereinfachen. Wenn nicht hätte ich ja dann wieder relativ viel Code außerhalb von Funktionen.

Re: mit os.spawnv() und __main__?

Verfasst: Sonntag 9. März 2008, 11:29
von Leonidas
meneliel hat geschrieben:wenn ich in einem Skript A mit os.spawnv() eine anderes Skript B aufrufe, ist dieses Skript B, dann main?
Ja. Und aus der Dokumentation:
os.spanw* Dokumentation hat geschrieben:(Note that the subprocess module provides more powerful facilities for spawning new processes and retrieving their results; using that module is preferable to using these functions.)

Verfasst: Sonntag 9. März 2008, 12:18
von meneliel
hmm ... also lieber:

Code: Alles auswählen

subprocess.call(["main.py",arg_list])
als:

Code: Alles auswählen

os.spawnv(os.P_WAIT, PythonPath, "main.py", arg_list)
Und wo genau liegt der Vorteil? Und nutze ich besser Popen oder call?

Verfasst: Sonntag 9. März 2008, 12:36
von Leonidas
meneliel hat geschrieben:Und wo genau liegt der Vorteil? Und nutze ich besser Popen oder call?
Es ist klarer, ``subprocess`` vereinigt vieles was in os.popen*, os.exec*, popen2.* und sonstwo verstreut ist.

``Popen`` nutzt du da wo du die Ein- oder Ausgabe kontrollieren willst und ``call`` nur dort wo du ein Programm aufrufst, ohne dich um dessen Ausgaben zu kümmern.