mit os.spawnv() und __main__?

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
meneliel
User
Beiträge: 256
Registriert: Montag 25. Juni 2007, 08:35
Kontaktdaten:

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.
Zuletzt geändert von meneliel am Sonntag 9. März 2008, 12:08, insgesamt 1-mal geändert.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
meneliel
User
Beiträge: 256
Registriert: Montag 25. Juni 2007, 08:35
Kontaktdaten:

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?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten