是否有可能在命令窗口(控制台)中获得"更多"行?
当我调试我的程序时,我向窗口输出了很多行,并且输出的开头一直在消失,我可以向后滚动窗口,所以我从程序开始就看不到我的完整输出.
如何获取命令窗口以保留所有行?
(是的,我可以把它写成一个文本文件作为日志,但我想尝试这样做以进行更改)
TL; DR:
该
print()结果不会在Windows控制台更新.在IDLE中执行罚款.即使Windows控制台未更新,程序仍在执行.
背景
我有一个文件,test.py其中包含:
编辑:包括我用来查看控制台是否正在更新的条件.最终,一系列X值永远不会再在Console中打印,并且控制台永远不会向上滚动(正如通常在底部生成输出时那样).
count = 0
while True:
print ("True")
count += 1
if count == 10:
print ("XXXXXXXXX")
count = 0
Run Code Online (Sandbox Code Playgroud)
当我在cmd.exe其中运行它显然打印了非常大量的True.
但是,运行大约25秒后,它会停止打印,尽管程序仍在运行,可以在任务管理器中看到.
我有一个带有一些进度指标的程序,最终保持在50%,即使它们超过50%只是因为print()没有在控制台输出中显示.
编辑:真正的用例问题.
上面的代码只是一个测试文件,用于查看Console中的打印是否在所有程序中停止,而不是我正在运行的程序.在实践中,我的程序打印到控制台,看起来像:
line [10] >> Progress 05%
Run Code Online (Sandbox Code Playgroud)
哪里line [10]不是真的,但我只是在这里输入,以显示print()在控制台窗口中发送到该行.随着我的程序继续增加:
line [10] >> Progress 06%
line [10] >> Progress 11%
.
.
.
line [10] >> Progress 50%
Run Code Online (Sandbox Code Playgroud)
每次都line [10]被覆盖.我使用ANSI转义字符并相应colorama …