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

时间:2011-12-29 00:35:20

标签: python email subprocess

我已经读过应该使用子进程但是我在其上看到的所有示例都表明它只运行命令行命令。我希望我的程序与另一个命令一起运行python命令。我想运行的命令是在用户玩我创建的游戏时向用户发送电子邮件。我必须同时运行python命令,因为如果没有这样做,游戏中的任何其他内容都不会发生在电子邮件完成发送之前,因此它会滞后于游戏。请帮忙,感谢任何意见。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

在另一个答案中讨论了线程,但是你可以通过使用subprocess的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