2013-10-02 80 views
0

在程序中有沒有辦法像sys.stdin.write("text")這樣做,來模擬用戶輸入的文字, 而不是使用input()或等效文字,並等待用戶輸入內容?寫入程序中的stdin?

我問,因爲我有我的計劃,我無法修復一個bug,該bug昨天發佈還沒有得到答案,到現在爲止,這是我最後的手段。

(Windows XP,Python3.3)

謝謝。

回答

1

有各種各樣的黑客來完成這一點,例如,

from io import StringIO 
import sys 

sys.stdin = StringIO("user says hello!") 

這應該跨模塊工作。同樣,您可以用一個附加到一系列預設用戶輸入的數據流替換sys.stdin

+0

您能否爲此代碼添加更多解釋?我知道我應該閱讀這個模塊以便更好地理解,但是您能否添加更多細節? – user2162550

+0

@ user2162550:此代碼所做的主要事情是用另一個流替換「sys.stdin」,實際上將其重定向。 'StringIO'是從字符串中讀取的特殊類型的僞文件。 –