Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python';for循环中的s os.system:如何在重新启动循环之前等待命令完成?_Python_Python 3.x_Os.system_Gnome Terminal - Fatal编程技术网

Python';for循环中的s os.system:如何在重新启动循环之前等待命令完成?

Python';for循环中的s os.system:如何在重新启动循环之前等待命令完成?,python,python-3.x,os.system,gnome-terminal,Python,Python 3.x,Os.system,Gnome Terminal,我对使用os.system(Python3)是新手,我正在尝试执行一个通常在Linux终端上运行的程序。我需要迭代几次,并使用如下循环: for item in item_list: os.system("gnome-terminal -- program_execute "+item) 问题是,此循环同时打开n终端窗口(我的项目列表的长度为n),并同时执行所有窗口。我的问题是: 如何运行循环len(item_list)次,而下一次运行仅在当前运行结束后开始 我不

我对使用os.system(Python3)是新手,我正在尝试执行一个通常在Linux终端上运行的程序。我需要迭代几次,并使用如下循环:

for item in item_list:
    os.system("gnome-terminal -- program_execute "+item) 
问题是,此循环同时打开
n
终端窗口(我的
项目列表的长度为
n
),并同时执行所有窗口。我的问题是:

如何运行循环
len(item_list)
次,而下一次运行仅在当前运行结束后开始

我不能使用
sleep()
,因为运行时间因项目而异,我希望优化流程


编辑:我尝试过使用.communicate()和.wait()但没有成功。我希望os.system(或os.SUBSPROCESS)理解gnome终端仍在运行,仅在上一个循环的gnome终端关闭后经过循环中的下一个元素。

我使用了下面的代码的SUBSPROCESS,它工作正常,即软件运行一次并在进入下一个循环之前完全完成

for item in item_list:
    subprocess.call(["gnome-terminal","--disable-factory","--","my_command"])

这回答了你的问题吗?这已经被问到:>@mkrieger1,它实际上没有。即使在我使用.communicate()或.wait()时,问题仍然存在。@damian863m,错误404。您到底是如何使用
子流程的
模块的?你能用一个新的答案更新这个问题吗?