python - 执行另一个python脚本,然后关闭当前脚本

标签 python subprocess sys

我有一个 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() 或类似的东西,但我迷路了。

非常感谢!

最佳答案

你可以做一些完全黑客的废话

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")

关于python - 执行另一个python脚本,然后关闭当前脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38509674/

相关文章:

python - 突变后更新动态依赖的对象属性

python - Kivy:如何从 kvlang 中的任何屏幕访问嵌套的屏幕管理器

python - Keras 均方误差损失层

python : call ffmpeg command line with subprocess

python - 如何用Python代码运行Windows powercfg的功能?

python - 从脚本中捕获标准输出?

python - 根据索引和条件更改 numpy 数组中的值

python check_output 文件未找到错误 : [WinError 2] The system cannot find the file specified

python - 如何在一行上一次打印一个单词?

python - 为什么 sys.stdout.write() 显示字符串的长度?