我正在尝试做一些应该(也许(非常简单的事情,但我找不到解决方案。我想这可能是因为我无法正确查询互联网上的这件事。
我正在运行一个代码,该代码有一个计数器,它使用回车符(r
(在一行中打印更新的完成百分比,以每次更新同一行。
该代码在一系列国家中进行迭代,例如加拿大、美国、阿根廷三个国家。
当它打印计数器时,它也打印国家。像这样:
k=0
for nation in d.keys():
k += 1
num_items = len(d[nation])
...
<do something>
...
sys.stderr.write(f"Processed {k} out of {num_items} for {nation}r")
现在,当阿根廷先被处理,然后是加拿大,然后是美国时,问题就出来了。打印的字符串是:
Processed 147 out of 147 for Argentina
Processed 762 out of 762 for Canadaina
Processed 241 out of 241 for USAadaina
在使用回车的同时,如何避免前一行出现在新行中?
您可以打印由空格组成的干净行,然后打印新行,例如:
import random
from time import sleep
countries = ["Argentina", "USA", "Canada"]
for _ in range(10):
# clear the line
print(" " * 60, end="r")
# print new line
print(f"Processed XXX for {random.choice(countries)}", end="r")
sleep(0.5)
print()