重定向标准输出时打印到终端

时间:2020-10-29 16:57:24

标签: python unix

我有一个小的命令行脚本,将其结果打印到标准输出,然后通常将其重定向到文件。脚本的一部分是需要通过终端要求用户输入一些内容,但是输入提示当然也将重定向到该文件,以使用户不知道该怎么做:

eggs.py

if __name__ == "__main__":
    print("foo")
    choice = input("Eggs and Spam? ")
    print("bar")

无论如何将stdout定向到哪里,如何使input-promt都定向到终端,所以:

python eggs.py > test.txt
> Eggs and Spam?

test.txt

foo
bar

1 个答案:

答案 0 :(得分:1)

这可能并不完全是为了在终端上显示内容,但是使用stderr可以满足您的要求:

import sys

if __name__ == "__main__":
    print("foo")
    print("Eggs and spam?", file=sys.stderr)
    choice = input()
    print("bar")