如何在Python中显示重定向的stdin?
我从一个需要标准输入重定向的Python项目开始,使用类似于以下的代码:
import sys
import StringIO
s = StringIO.StringIO("Hello")
sys.stdin = s
a = raw_input("Type something: ")
sys.stdin = sys.__stdin__
print("You typed in: "+a)
问题是,代码运行后,将显示以下内容:
输入内容:您输入的内容:Hello
有没有办法修改我的代码,以便显示以下内容?
输入内容:您好
您输入了:您好
我一直在搜寻高低,但尚未找到答案。如果有人有主意,我将不胜感激。谢谢!
-
我不确定为什么需要这样做,但是您可以始终这样做:
a = raw_input("Type something: ") if sys.stdin is not sys.__stdin__: print(a) print("You typed in: "+a)
再说一次,
raw_input
根据需要交换自己的实现可能会更有意义。编辑:好的,根据您的评论,看来您想进行一些猴子修补。像这样:
old_raw_input = raw_input def new_raw_input(prompt): result = old_raw_input(prompt) if sys.stdin is not sys.__stdin__: print result return result raw_input = new_raw_input
当然,这可能是重定向stdin争论的重点。