2011-12-29 2 views
2

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

+2

Было бы легче помочь, если вы показали некоторый исходный код .. – sarnold

ответ

3

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

+0

Вы также можете посмотреть на [многопроцессорная] (HTTP : //docs.python.org/library/multiprocessing.html) –

2

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

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

#...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 
Смежные вопросы