我希望我能很好地解释这一点。(英语不是我的母语),但是在this问题中,他们要求同时运行多个python脚本。 this is到底是怎么实现的,基本上只是使用bash中的&执行我的多个脚本
我想做的是避免创建多个脚本,而是希望一个脚本可以同时运行所有脚本
其中一个脚本看起来像这样(类似于我所有其他脚本)
while True:
text = "some shell script"
os.system(text)
我发现很难使用while循环或任何形式的循环,因为它一个接一个地执行它们,而且速度非常慢。我对python非常陌生,并且不太擅长编程..所以任何帮助都很好
答案 0 :(得分:1)
您可以使用os.fork()为每个脚本生成一个新的进程。即
text = "some shell script"
pid = os.fork()
if pid == 0
os.system(text)
sys.exit()
这将创建一个新进程并在其中执行脚本,然后在完成后退出。尽管在while循环中这样做只会继续创建新进程,直到os停止它为止。
如果您有要执行的程序列表,最好使用for循环遍历它们。例如
programs = ['test1.py', 'test2.py', 'test3.py']
for program in programs:
pid = os.fork()
if pid == 0
os.system(program)
sys.exit()
我也建议在os.system()上使用subprocess.call()来代替它。它使您可以轻松处理正在执行的程序的输入和输出。