编辑:在阅读了其他答案和评论之后,我认为我找到了一个真正重定向stdin的好方法。请注意,我假设您将知道最终用户的原始输入需要的输入。在
用户代码(命名为_模块.py)在print "running some module with 5 raw_input requests"
for x in range(5):
value = raw_input("This is someone else's code asking its (" + str(x) + ") raw_input: ")
print 'stdin value: ' + value
您的测试脚本(根据需要命名)
^{pr2}$
运行脚本会产生running some module with 5 raw_input requests
This is someone else's code asking its (0) raw_input: Value 1
stdin value: Value 1
This is someone else's code asking its (1) raw_input: Value 2
stdin value: Value 2
This is someone else's code asking its (2) raw_input: Value 3
stdin value: Value 3
This is someone else's code asking its (3) raw_input: Value 1
stdin value: Value 1
This is someone else's code asking its (4) raw_input: Value 2
stdin value: Value 2
原始答案
不确定你是否在寻找这样一个字面上的答案,但在这里import sys
import StringIO
s = StringIO.StringIO("Hello")
sys.stdin = s
a = raw_input("Type something: ")
sys.stdin = sys.__stdin__
print(a+"\nYou typed in: "+a)
产量:Type something: Hello
You typed in: Hello