1
我需要将数据写入到我创建的进程中。由于各种原因,它已将设为multiprocessing.Process
。假设这个过程执行类似于运行apt upgrade
的操作,然后会提示用户输入[Y/n]。发送Y或n的最佳方式是什么?我做了很多搜索,发现了很多关于复制stdin的答案,但是我一直没有想出一个完整的解决方案。下面是一个简单的例子:写入python多进程的stdin。进程
#! /usr/bin/python3
import sys
import multiprocessing
e = multiprocessing.Event()
def get_input():
try:
x = input("Go ahead - type something\n")
print("typed " + x)
finally:
e.set()
# 1. Here it seems we should replace stdin?
multiprocessing.Process(target=get_input).start()
# 2. Here I want to write to stdin such that Process started above receives input
e.wait()
当然,这会因为输入使用的stdin被关闭而刚刚返回一个EOF而立即死亡。我如何覆盖标准输入从文件或某种本地缓冲区输入?