2013-10-02 44 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'是从字符串中读取的特殊类型的伪文件。 –