Как запустить несколько команд Python одновременно? - PullRequest
2 голосов
/ 29 декабря 2011

Я прочитал, что следует использовать подпроцесс, но все примеры, которые я видел на нем, показывают, что он запускает только команды командной строки. Я хочу, чтобы моя программа запускала команду python вместе с другой командой. Команда, которую я хочу выполнить, - это отправить электронное письмо пользователю, пока пользователь играет в игру, которую я создал. Мне нужно, чтобы команды Python выполнялись одновременно, потому что без этого ничего в игре не может произойти до того, как электронное письмо закончится, поэтому оно отстает от игры. Пожалуйста, помогите, и любой вклад приветствуется.

Ответы [ 2 ]

3 голосов
/ 29 декабря 2011

Звучит так, как будто вы ищете многопоточность, это довольно глубокая тема, но это должно помочь вам начать: http://www.devshed.com/c/a/Python/Basic-Threading-in-Python/

2 голосов
/ 29 декабря 2011

О потоках говорится в другом ответе, но вы можете получить в основном то, что вы хотите, используя команду Popen подпроцесса: http://docs.python.org/library/subprocess.html#subprocess.Popen

Что вам в основном нужно, так это (при условии, что proc инициализируется где-то вигровой цикл):

#...game code here...

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

Затем вы вернетесь к игровому циклу.В какой-то момент игрового цикла вы можете вставить что-то вроде этого:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...