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