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而立即死亡。我如何覆蓋標準輸入從文件或某種本地緩衝區輸入?