如果我有以下代码:
for x in range(10):
print x
我会得到的输出
1
2
etc..
我想做的不是打印换行符,而是想替换以前的值并在同一行上用新值覆盖它。
原文由 ccwhite1 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果我有以下代码:
for x in range(10):
print x
我会得到的输出
1
2
etc..
我想做的不是打印换行符,而是想替换以前的值并在同一行上用新值覆盖它。
原文由 ccwhite1 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于我是通过 Google 来到这里的,但我使用的是 Python 3,下面是它在 Python 3 中的工作方式:
for x in range(10):
print("Progress {:2.1%}".format(x / 10), end="\r")
此处的相关答案: How can I suppress the newline after a print statement?
原文由 Pascal 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答895 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
简易版
一种方法是使用回车符 (
'\r'
) 字符返回到行的开头而不前进到下一行。蟒蛇3
Python 2.7 向前兼容
Python 2.7
Python 2.0-2.6
在后两种情况(仅限 Python 2)中,print 语句末尾的逗号告诉它不要转到下一行。最后的 print 语句前进到下一行,因此您的提示不会覆盖您的最终输出。
线路清洗
如果你不能保证新的文本行不比现有的行短,那么你只需要添加一个“清晰到行尾”的转义序列,
'\x1b[1K'
('\x1b'
= 退出):