【发布时间】:2019-10-10 12:09:22
【问题描述】:
有一些代码显示了函数过程:
all_nums = 100
counter = 0
def status(num, counter):
print(
f'Current number {num}',
f'Numbers done: {counter}, all nums: {all_nums}',
f'{(num/all_nums):2.1%}',
flush=False, end='\r'
)
for x in range(all_nums):
counter += 1
status(x, counter)
time.sleep(0.1)
它有效。但我想把这段文字分成一行。当我将\n 添加到任何地方时,一切都会中断。
Current number 1, all nums: 100 0.0%
Current number 2, all nums: 100 1.0%
Current number 3, all nums: 100 2.0%
Current number 4, all nums: 100 3.0%
如何在多行中覆盖控制台输出?
【问题讨论】:
-
@Carcigenicate 我写得很清楚:代码可以正常工作,直到您添加换行符,之后它开始像常规打印一样工作,即不更改行,而是打印一个新行。跨度>
-
请清楚显示当前输出和预期输出,这样我们更容易理解您想要什么
-
@Energya 我该怎么做?此函数修改输出字符串。我应该录制视频来展示它的工作原理吗?
-
我运行了您的代码,所有输出都驻留在同一行。我的环境是 Ubuntu 上的 bash。您的环境可能是问题的一部分吗?
-
@jhelphenstine 你用换行符运行它吗,例如这里:f'Current number {num}\n', ?
标签: python-3.x