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


问题内容

我想将重定向stdout到文件。但这会影响到raw_input。我需要将输出重定向raw_inputstderr而不是stdout。我怎样才能做到这一点?


问题答案:

暂时重定向stdoutstderr,然后还原。

import sys

old_raw_input = raw_input
def raw_input(*args):
    old_stdout = sys.stdout
    try:
        sys.stdout = sys.stderr
        return old_raw_input(*args)
    finally:
        sys.stdout = old_stdout