如何同时运行多个Python命令?
我看到有人说应该使用subprocess这个东西,但我看到的例子都是在运行命令行的指令。我想让我的程序同时运行一个Python命令和另一个命令。我想要运行的命令是给用户发送一封邮件,而这个用户正在玩我创建的游戏。我必须让Python命令同时运行,因为如果不这样做,游戏在发送邮件之前就什么都不能做,这样会导致游戏卡顿。请帮帮我,任何建议都很感谢。
2 个回答
2
在另一个回答中提到了线程,但其实你可以通过使用子进程的 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
3
听起来你是在寻找关于线程的内容,这个话题比较复杂,但我可以给你一些入门的帮助:http://www.devshed.com/c/a/Python/Basic-Threading-in-Python/