【发布时间】:2021-07-13 15:08:06
【问题描述】:
以下命令不等待子进程完成执行。
mylist = ['First','Second','Third',....., 'Nth']
for items in mylist:
subprocess.run('googleimagesdownload --keywords "'+items+'" --size medium --limit 100 --output_directory ../../../downloads')
我想在 Linux 终端中执行上面的 Python 脚本但是 它不等待子进程完成每个迭代
for items in mylist:
os.system('googleimagesdownload --keywords "'+items+'" --size medium --limit 100 --output_directory ../../../downloads')
以下 Python 脚本在 Windows 上运行良好,它等待命令完全执行然后移至下一个迭代,但在 Linux 终端上不起作用
【问题讨论】:
-
subprocess.run() 调用应该等待调用完成,如果将函数调用替换为
subprocess.run(['sleep', '1']),它是否有效? -
将以下代码放在我的下面之后,现在该过程会在 1 秒后重新运行Nothing Else。
-
为什么要等待每个任务完成?您可以并行下载它们。如果你的问题是你的程序在它完成之前就结束了,你应该考虑使用
asynciostackoverflow.com/a/63786058/277267 -
你能用我的代码分享这个例子吗?
Asyncio
标签: python linux terminal subprocess