我有一个小的命令行脚本,将其结果打印到标准输出,然后通常将其重定向到文件。脚本的一部分是需要通过终端要求用户输入一些内容,但是输入提示当然也将重定向到该文件,以使用户不知道该怎么做:
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
答案 0 :(得分:1)
这可能并不完全是为了在终端上显示内容,但是使用stderr可以满足您的要求:
import sys
if __name__ == "__main__":
print("foo")
print("Eggs and spam?", file=sys.stderr)
choice = input()
print("bar")