我正在使用以下代码来显示具有循环完成百分比的字符串:
for x in range(y,z):
completed = 100*(x-y)/(z-y)
sys.stdout.write(f'{completed:10.0f}% completed.'
sys.stdout.flush()
我希望所有字符串都显示在Windows cmd的同一行中(删除早期值,并在同一位置打印新值)
我想要获得的输出应如下所示:
x% completed.
每次迭代都会更新x值。
但是我得到的输出看起来像这样:
0% completed. 1% completed. 2% completed. ...etc
根据我的发现,它应该可以在Windows以外的其他平台上运行,但是我对Windows解决方案感兴趣。
答案 0 :(得分:0)
在字符串末尾添加\r
:
for x in range(y,z):
completed = 100*(x-y)/(z-y)
sys.stdout.write(f'{completed:10.0f}% completed. \r'
sys.stdout.flush()
除非存在一些缓冲问题,否则您应该可以直接使用print
:
for x in range(y,z):
completed = 100*(x-y)/(z-y)
print(f'{completed:10.0f}% completed. ', end='\r')