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

2 投票
2 回答
2844 浏览
提问于 2025-04-17 09:11

我看到有人说应该使用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/

撰写回答