如何将 raw_input 重定向到 stderr 而不是 stdout?

2023-11-26

我想重定向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(使用前将#替换为@)

如何将 raw_input 重定向到 stderr 而不是 stdout? 的相关文章

随机推荐