0
在程序中有沒有辦法像sys.stdin.write("text")
這樣做,來模擬用戶輸入的文字, 而不是使用input()
或等效文字,並等待用戶輸入內容?寫入程序中的stdin?
我問,因爲我有我的計劃,我無法修復一個bug,該bug昨天發佈還沒有得到答案,到現在爲止,這是我最後的手段。
(Windows XP,Python3.3)
謝謝。
在程序中有沒有辦法像sys.stdin.write("text")
這樣做,來模擬用戶輸入的文字, 而不是使用input()
或等效文字,並等待用戶輸入內容?寫入程序中的stdin?
我問,因爲我有我的計劃,我無法修復一個bug,該bug昨天發佈還沒有得到答案,到現在爲止,這是我最後的手段。
(Windows XP,Python3.3)
謝謝。
有各種各樣的黑客來完成這一點,例如,
from io import StringIO
import sys
sys.stdin = StringIO("user says hello!")
這應該跨模塊工作。同樣,您可以用一個附加到一系列預設用戶輸入的數據流替換sys.stdin
。
您能否爲此代碼添加更多解釋?我知道我應該閱讀這個模塊以便更好地理解,但是您能否添加更多細節? – user2162550
@ user2162550:此代碼所做的主要事情是用另一個流替換「sys.stdin」,實際上將其重定向。 'StringIO'是從字符串中讀取的特殊類型的僞文件。 –