【发布时间】:2021-01-12 23:05:06
【问题描述】:
我是使用 os.system(在 Python 3 中)的新手,我正在尝试执行一个我通常会在 Linux 终端中运行的程序。我需要迭代几次并使用类似以下循环的东西:
for item in item_list:
os.system("gnome-terminal -- program_execute "+item)
问题是这个循环同时打开n终端窗口(我的item_list的长度是n)并同时执行所有这些窗口。我的问题是:
如何运行循环 len(item_list) 次,而下一次运行仅在当前运行完成后开始?
我不能使用sleep(),因为运行时间因项目而异,我想优化流程。
编辑:我尝试使用 .communicate() 和 .wait() 没有成功。我希望 os.system(或 os.subprocess)了解 gnome-terminal 仍在运行,仅在上一个循环的 gnome-terminal 关闭后通过循环中的下一个元素。
【问题讨论】:
-
@mkrieger1,实际上没有。即使我使用 .communicate() 或 .wait() 问题仍然存在。
-
@damian863m,错误 404。
-
您究竟是如何使用
subprocess模块的?你能用minimal reproducible example更新问题吗?
标签: python python-3.x os.system gnome-terminal