我有一个python脚本script_a.py
使用subprocess.call()
执行另一个脚本script_b.py
作为它结束前的最后一条指令。我需要script_b.py
等待script_a.py
关闭才能继续执行自己的说明。为此,我在script_b.py
中使用了while循环。我怎样才能做到这一点?我尝试过的所有当前解决方案都会script_a.py
等待,直到script_b.py
完成才关闭。我觉得这可能涉及atexit()
或类似的东西,但我迷失了。
非常感谢!
答案 0 :(得分:1)
您的script_a.py将是:
import subprocess
#do whatever stuff you want here
p = subprocess.Popen(["python","b.py"])
p.wait()
p.terminate()
#continue doing stuff
答案 1 :(得分:1)
你可以做一些完全hacky的废话
<强> script_b.py 强>
while not os.path.exists("a.done"):pass
time.sleep(0.2) # a little longer just to be really sure ...
os.remove("a.done")
... # rest of script b
<强> script_a.py 强>
import atexit
atexit.register(lambda *a:open("a.done","w"))
或代替Popen
只做
os.execl("/usr/bin/python","script_b.py")