2 Stimmen

Wie kann man mehrere Python-Befehle gleichzeitig ausführen?

Ich habe gelesen, dass subprocess verwendet werden sollte, aber alle Beispiele, die ich dazu gesehen habe, zeigen, dass es nur Befehlszeilenbefehle ausführt. Ich möchte, dass mein Programm einen Python-Befehl zusammen mit einem anderen Befehl ausführt. Der Befehl, den ich ausführen möchte, ist eine E-Mail an einen Benutzer zu senden, während ein Benutzer ein Spiel spielt, das ich erstellt habe. Ich muss die Python-Befehle zur gleichen Zeit laufen lassen, weil ohne dies nichts anderes im Spiel passieren kann, bevor die E-Mail fertig gesendet ist, so dass es das Spiel verzögert. Bitte helfen Sie und jede Eingabe wird geschätzt.

3voto

TimothyAWiseman Punkte 13297

Es klingt, als ob Sie nach Threading suchen, was ein relativ tiefes Thema ist, aber dies sollte Ihnen den Einstieg erleichtern: http://www.devshed.com/c/a/Python/Basic-Threading-in-Python/

2voto

A. Wilson Punkte 8084

Über Threading wird in einer anderen Antwort gesprochen, aber Sie können im Grunde das erreichen, was Sie wollen, indem Sie den Befehl Popen von subprocess verwenden: http://docs.python.org/library/subprocess.html#subprocess.Popen

Was Sie im Grunde wollen, ist dies (vorausgesetzt, proc ist irgendwo in der Spielschleife initialisiert):

#...game code here...

args = [command_name_as_string, arg_1_to_command, arg_2_to_command, etc.]
proc = subprocess.Popen(args)

Dann kehren Sie zu Ihrer Spielschleife zurück. An einem bestimmten Punkt in der Spielschleife können Sie etwas wie dieses einfügen:

if proc:
    proc.poll()
    if proc.returncode:
        #...do whatever you want with the process output here, which can 
        # be accessed with proc.stdin, proc.stderr, and so on...
    proc = None

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X