如何同时运行多个python命令?

如何同时运行多个python命令?

问题描述:

我读过应该使用子进程,但是我看到的所有示例都显示它只运行命令行命令。我想让我的程序和其他命令一起运行python命令。我想运行的命令是在用户播放我创建的游戏时向用户发送电子邮件。我必须同时运行python命令,因为如果没有这样做,游戏中的其他任何事情都不会在电子邮件发送完成之前发生,因此它滞后于游戏。请帮助和任何输入赞赏。如何同时运行多个python命令?

+2

它会更容易帮助,如果你表现出一些源代码.. – sarnold 2011-12-29 00:40:03

这听起来像你正在寻找线程,这是一个比较深的话题,但这应该帮助您入门:http://www.devshed.com/c/a/Python/Basic-Threading-in-Python/

+0

你可能也想看看[多](HTTP ://docs.python.org/library/multiprocessing.html) – 2011-12-29 00:52:27

线程是谈到了另一个答案,但你可以得到基本上你想要什么采用子的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