我想重定向stdout
到一个文件。但这会影响raw_input
。我需要重定向输出raw_input
to stderr
代替stdout
。我怎样才能做到这一点?
唯一的问题是raw_input
是它将提示打印到标准输出。与其尝试拦截它,为什么不自己打印提示,然后调用raw_input
没有提示,不会向标准输出打印任何内容?
def my_input(prompt=None):
if prompt:
sys.stderr.write(str(prompt))
return raw_input()
如果你想更换raw_input
有了这个:
import __builtin__
def raw_input(prompt=None):
if prompt:
sys.stderr.write(str(prompt))
return __builtin__.raw_input()
(有关更多信息,请参阅文档__builtin__,该模块raw_input
和别的内置函数存储在。你通常不需要import
它,但文档中没有任何内容可以保证这一点,所以最好是安全的......)
在 Python 3.2+ 中,该模块被命名为builtins代替__builtin__
。 (当然3.x没有raw_input
首先,它已被重命名input,但同样的想法也可以用在那里。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)