Python 什么';与标准输出分开写入屏幕的最佳实践是什么?

Python 什么';与标准输出分开写入屏幕的最佳实践是什么?,python,input,stdout,stderr,Python,Input,Stdout,Stderr,我正在编写一个数据处理脚本,将输出写入stdout,因此使用方法类似于myscript.py>outfile.csv 处理完成后,需要一些用户交互:打印几行信息行,同时收集输入(用户只需输入是/否) 在屏幕上显示这些内容的最佳实践是什么?它不能转到标准输出,因为它正在被重定向到该文件。我应该只使用sys.stderr.write()吗?如何将其用于原始输入()?还是我错过了一条更好的路?或者我应该编写脚本,以便将输出文件的名称作为参数?(但我希望能够通过管道将输出传输到其他脚本)。好的,谢谢大家

我正在编写一个数据处理脚本,将输出写入stdout,因此使用方法类似于
myscript.py>outfile.csv

处理完成后,需要一些用户交互:打印几行信息行,同时收集输入(用户只需输入是/否)


在屏幕上显示这些内容的最佳实践是什么?它不能转到标准输出,因为它正在被重定向到该文件。我应该只使用sys.stderr.write()吗?如何将其用于原始输入()?还是我错过了一条更好的路?或者我应该编写脚本,以便将输出文件的名称作为参数?(但我希望能够通过管道将输出传输到其他脚本)。

好的,谢谢大家的输入,我将改变它的工作方式,并将输出文件名作为命令行参数。我想我试着让它像传统的unix命令行工具一样工作一半,但不是全部,这是个坏主意


就我试图做的事情的答案而言,看起来我可以在某些时候暂时将stdout重定向到stderr,如下所示:

更有意义的是,应该转到特定文件的内容应该由脚本显式写入该文件。。然后你可以担心将stdout和stderr引导到其他地方。我不确定你要做的事情是否有“最佳实践”。。。看起来有点像黑客,可能会适得其反。我能想到的唯一方法是编写stderr,这不是一个很好的解决方案。不管用Python实现这一点,对于命令行工具来说,这将是一种非常奇怪的行为方式。实际上这几乎是不可能的,除了写入
stderr
;这就是
bash
和其他shell打印提示符的地方。
raw\u input
也有;最好不要重定向并使用原始输入。