我从一个需要标准输入重定向的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根据需要交换自己的实现可能会更有意义。
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争论的重点。