【发布时间】:2011-08-14 07:35:06
【问题描述】:
我正在开始一个 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)
问题是,代码运行后,显示如下:
输入一些东西:你输入:你好
有没有办法修改我的代码以显示以下内容?
输入一些东西:你好
你输入:你好
我一直在寻找高低,但还没有找到答案。如果有人有想法,我将不胜感激。 谢谢!
【问题讨论】:
-
“标准输入重定向是必要的”?真的吗?这似乎是一个不可能的情况。为什么不用你想要的可调用对象替换
raw_input? -
我明白这不是常见的情况,但确实有必要。上面的代码只是一个非常简单的例子;实际上,我需要运行其他人的要求输入的代码,所以我无法改变他们编写程序的方式。
-
您无需更改他们的代码。您使用自己的版本重新定义内置函数,导入他们的代码,并使用您的内置版本运行他们的代码。
-
哦,我明白你的意思了。但是,我仍然想不出使用您的想法的实现是令人满意的。您介意发布一段可能帮助我更接近解决方案的示例代码吗?非常感谢!