如何在需要用户输入/确认时暂停其他进程 Subprocess Python

How do I pause other processes when user input / confirmation is required Subprocess Python

如果我有一个脚本(进程 run.py)将 运行 3 个子进程 A.py、B.py、C.py(同时调用 3 个脚本通过过程的时间 run.py).

p= subprocess.Popen(['python3', '-u', 'A.py'])
p2 = subprocess.Popen(['python3', '-u', 'B.py'])
p3 = subprocess.Popen(['python3', '-u', 'C.py'])

运行正常。 但是在 b.py 中说我有一行

reply = input( do you want to continue this action y/n :)
if reply.lower == 'yes':
take this action()
elif reply.lower == 'no' :
take other action()

(pref) 如何让 A.py 和 c.py 的子进程到 wait/pause 5 秒,以便用户输入 y 或 no 或等待用户输入 y 或 no

终端中的基本确认提示。然而,我面临的问题是 A.py B.py 运行ning 不允许确认将启动不同的 task/process/script.

欢迎指教

您必须使用外部系统让进程之间进行通信。

外部系统可以像在文件中写入一些代码并让所有进程检查文件的状态一样简单。

B.py

with open("my.lock", "w") as f:
    f.write("a")
reply = input( do you want to continue this action y/n :)
if reply.lower == 'yes':
take this action()
elif reply.lower == 'no' :
take other action()
os.remove("my.lock")

A.py 或 C.py

import os
import time

while os.path.isfile("my.lock"):
   time.spleep(1)
# then your logic

更复杂的解决方案是使用消息代理 (RabbitMQ, Kafka...)。