当输出重定向到文件时如何打印到控制台?
How do I print to console when output is redirected to a file?
我想将一些计算的结果写入带有打印功能的文件,并将一些其他数据(如进度指示)打印到 Windows 控制台,以便我可以立即看到它。
我写到控制台的是:C:\Users\BoltKey>python program.py < in.txt > out.txt.
有没有办法重载输出重定向并打印到控制台?或者它只是错误的,如果我想同时打印到控制台和文件,我应该使用文件函数?
这是伪代码:
for i in range(100):
for j in range(100):
result = getResult(i, j)
print result // print to output file
consolePrint "progress: " + str(i) + "%" // print to console
您可以打印到 stderr 来实现这一点(您的命令行只是将 stdout 重定向到一个文件)。有几种方法可以实现这一点,但在 this SO answer:
中可以找到一个很好的方法
import sys
from __future__ import print_function
...
print("Message", file=sys.stderr)
对我来说听起来很丑陋。
只需使用 stderr
来显示进度消息。
我想将一些计算的结果写入带有打印功能的文件,并将一些其他数据(如进度指示)打印到 Windows 控制台,以便我可以立即看到它。
我写到控制台的是:C:\Users\BoltKey>python program.py < in.txt > out.txt.
有没有办法重载输出重定向并打印到控制台?或者它只是错误的,如果我想同时打印到控制台和文件,我应该使用文件函数?
这是伪代码:
for i in range(100):
for j in range(100):
result = getResult(i, j)
print result // print to output file
consolePrint "progress: " + str(i) + "%" // print to console
您可以打印到 stderr 来实现这一点(您的命令行只是将 stdout 重定向到一个文件)。有几种方法可以实现这一点,但在 this SO answer:
中可以找到一个很好的方法 import sys
from __future__ import print_function
...
print("Message", file=sys.stderr)
对我来说听起来很丑陋。
只需使用 stderr
来显示进度消息。