gpt4 book ai didi

Python回车不起作用

转载 作者:行者123 更新时间:2023-11-28 21:53:22 25 4
gpt4 key购买 nike

我有一个长时间运行的脚本,它循环遍历数据库中的行。我经常希望它打印出它处理了多少行,但不要每次都创建一个新行。这基本上就是我所拥有的:

import sys
mystr = "{} rows complete\r"

for i in range(0, 100):
if i % 10 == 0:
sys.stdout.write(mystr.format(i))
sys.stdout.flush()

当我运行它时(在 Python 2.7.5 64 位,Windows 上)我得到:

0 rows complete
10 rows complete
20 rows complete
...
100 rows complete

谁能想到为什么回车不起作用?我在这里看到了一些关于 Python 和 \r 的类似问题,但所有答案都说包含了 sys.stdout.flush(),我有。

最佳答案

使用 \r可能是去这里的正确方法,但行为在很大程度上取决于文本的输出方式。并非所有终端都会尊重纯回车:

cmd.exepowershell.exe两者都应该按照您期望的方式输出文本(Powershell ISE 不会,但这是一个转移注意力的问题)。

Python 自带的 idle将忽略回车,所有输出都在一长行中。

如您所述,您自己的编辑器命令窗口也会忽略 \r .

此外,如果您尝试从交互式窗口尝试,您还会在每行末尾输出一些数字:这是因为交互式窗口有助于输出对 sys.stdout.flush() 的调用结果。 .

关于Python回车不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26575014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com