我有一段简单的代码,其中每一次迭代都要覆盖前一行的输出:
import time
for i in reversed(range (12)):
print i, '\r',
time.sleep(0.2)
当我使用命令:python test.py运行脚本时,我看到输出正在按预期的每次迭代替换自己。但是,当我使用命令将输出重定向到文件时:
python test.py >> tmp.txt
我得到了一个包含12行所有12个数字的文件。
如何在输出文件中获得与从命令行运行脚本相同的最终结果?
我在windows 10上使用python2.6.5。
运行一些运行Python脚本的shell脚本,当重定向到tee或文件时,我会得到stdout行的重新排序。
例如,如果运行shell脚本并将输出输出到我的stdout,则输出如下:
Line1: Starting X
Line2: Output of X
Line3: Starting Y
Line4: Output of Y
但是,如果我运行相同的脚本并将输出重定向到文件,或者使用tee,那么来自底层Python脚本的print语句将在执行的最后被打印出来。
Line1: Output of X
Line2: Output of Y
Line3: Starting X
Line4: S