gpt4 book ai didi

python - Windows 上 Python 控制台中的进度条

转载 作者:太空宇宙 更新时间:2023-11-04 05:46:11 25 4
gpt4 key购买 nike

除了其他一些链接之外,我还浏览了以下两个链接,并且我已经尝试了大部分提供的示例和建议,但是在我的输出中,进度条没有得到更新,而是显示了新的,无论是在同一行的结尾还是交替在新线上。我在这里缺少什么,有人可以指导我。

Python Progress Bar

Text Progress Bar in the Console

为方便起见,我正在重现我尝试过的一些代码(来自上述线程的示例)及其输出。我是否理解错误,它会更新同一行或者我错过了什么。感谢你的帮助。我在 Windows 7 上使用 Python 3.4 并在控制台上获取输出(无 GUI)。

示例 1:

import progressbar
import time, sys

progress = progressbar.ProgressBar()
for i in progress(range(80)):
time.sleep(0.01)

输出 1:

>>> 
0% | |
1% | |
2% |# |
3% |## |
5% |### |
6% |#### |
7% |##### |
8% |###### |
10% |####### |
11% |######## |
12% |######### |
13% |######### |
15% |########## |
16% |########### |
17% |############ |
18% |############# |
20% |############## |
21% |############### |
22% |################ |
23% |################# |
25% |################## |
26% |################## |
27% |################### |
28% |#################### |
30% |##################### |
31% |###################### |
32% |####################### |
33% |######################## |
35% |######################### |
36% |########################## |
37% |########################### |
38% |########################### |
40% |############################ |
41% |############################# |
42% |############################## |
43% |############################### |
45% |################################ |
46% |################################# |
47% |################################## |
48% |################################### |
50% |#################################### |
51% |#################################### |
52% |##################################### |
53% |###################################### |
55% |####################################### |
56% |######################################## |
57% |######################################### |
58% |########################################## |
60% |########################################### |
61% |############################################ |
62% |############################################# |
63% |############################################# |
65% |############################################## |
66% |############################################### |
67% |################################################ |
68% |################################################# |
70% |################################################## |
71% |################################################### |
72% |#################################################### |
73% |##################################################### |
75% |###################################################### |
76% |###################################################### |
77% |####################################################### |
78% |######################################################## |
80% |######################################################### |
81% |########################################################## |
82% |########################################################### |
83% |############################################################ |
85% |############################################################# |
86% |############################################################## |
87% |############################################################### |
88% |############################################################### |
90% |################################################################ |
91% |################################################################# |
92% |################################################################## |
93% |################################################################### |
95% |#################################################################### |
96% |##################################################################### |
97% |###################################################################### |
98% |####################################################################### |
100% |########################################################################|

示例 2:

for i in range(0, 101, 10):
sys.stdout.write('\r>> You have finished %3d%%\r' % i)
sys.stdout.flush()
sys.stdout.flush()
time.sleep(1)
print

输出 2:

You have finished 0% >> You have finished 10% >> You have finished 20% >> You have finished 30% >> You have finished 40% >> You have finished 50% >> You have finished 60% >> You have finished 70% >> You have finished 80% >> You have finished 90% >> You have finished 100%

示例 3:

def update_progress(progress):
barLength = 20 # Modify this to change the length of the progress bar
status = ""
if isinstance(progress, int):
progress = float(progress)
if not isinstance(progress, float):
progress = 0
status = "error: progress var must be float\r\n"
if progress < 0:
progress = 0
status = "Halt...\r\n"
if progress >= 1:
progress = 1
status = "Done...\r\n"
block = int(round(barLength*progress))
text = "\rPercent: [{0}] {1}% {2}".format( "="*block + " "*(barLength-block), progress*100, status)
sys.stdout.write(text)
sys.stdout.flush()

print("")
print("progress : 0->1")
for i in range(101):
time.sleep(0.1)
update_progress(i/100.0)

print("")
print("Test completed")
time.sleep(1)

输出 3:

>>> 

progress : 0->1

Percent: [ ] 0.0%
Percent: [ ] 1.0%
Percent: [ ] 2.0%
Percent: [= ] 3.0%
Percent: [= ] 4.0%
Percent: [= ] 5.0%
Percent: [= ] 6.0%
Percent: [= ] 7.000000000000001%
Percent: [== ] 8.0%
Percent: [== ] 9.0%
Percent: [== ] 10.0%
Percent: [== ] 11.0%
Percent: [== ] 12.0%
Percent: [=== ] 13.0%
Percent: [=== ] 14.000000000000002%
Percent: [=== ] 15.0%
Percent: [=== ] 16.0%
Percent: [=== ] 17.0%
Percent: [==== ] 18.0%
Percent: [==== ] 19.0%
Percent: [==== ] 20.0%
Percent: [==== ] 21.0%
Percent: [==== ] 22.0%
Percent: [===== ] 23.0%
Percent: [===== ] 24.0%
Percent: [===== ] 25.0%
Percent: [===== ] 26.0%
Percent: [===== ] 27.0%
Percent: [====== ] 28.000000000000004%
Percent: [====== ] 28.999999999999996%
Percent: [====== ] 30.0%
Percent: [====== ] 31.0%
Percent: [====== ] 32.0%
Percent: [======= ] 33.0%
Percent: [======= ] 34.0%
Percent: [======= ] 35.0%
Percent: [======= ] 36.0%
Percent: [======= ] 37.0%
Percent: [======== ] 38.0%
Percent: [======== ] 39.0%
Percent: [======== ] 40.0%
Percent: [======== ] 41.0%
Percent: [======== ] 42.0%
Percent: [========= ] 43.0%
Percent: [========= ] 44.0%
Percent: [========= ] 45.0%
Percent: [========= ] 46.0%
Percent: [========= ] 47.0%
Percent: [========== ] 48.0%
Percent: [========== ] 49.0%
Percent: [========== ] 50.0%
Percent: [========== ] 51.0%
Percent: [========== ] 52.0%
Percent: [=========== ] 53.0%
Percent: [=========== ] 54.0%
Percent: [=========== ] 55.00000000000001%
Percent: [=========== ] 56.00000000000001%
Percent: [=========== ] 56.99999999999999%
Percent: [============ ] 57.99999999999999%
Percent: [============ ] 59.0%
Percent: [============ ] 60.0%
Percent: [============ ] 61.0%
Percent: [============ ] 62.0%
Percent: [============= ] 63.0%
Percent: [============= ] 64.0%
Percent: [============= ] 65.0%
Percent: [============= ] 66.0%
Percent: [============= ] 67.0%
Percent: [============== ] 68.0%
Percent: [============== ] 69.0%
Percent: [============== ] 70.0%
Percent: [============== ] 71.0%
Percent: [============== ] 72.0%
Percent: [=============== ] 73.0%
Percent: [=============== ] 74.0%
Percent: [=============== ] 75.0%
Percent: [=============== ] 76.0%
Percent: [=============== ] 77.0%
Percent: [================ ] 78.0%
Percent: [================ ] 79.0%
Percent: [================ ] 80.0%
Percent: [================ ] 81.0%
Percent: [================ ] 82.0%
Percent: [================= ] 83.0%
Percent: [================= ] 84.0%
Percent: [================= ] 85.0%
Percent: [================= ] 86.0%
Percent: [================= ] 87.0%
Percent: [================== ] 88.0%
Percent: [================== ] 89.0%
Percent: [================== ] 90.0%
Percent: [================== ] 91.0%
Percent: [================== ] 92.0%
Percent: [=================== ] 93.0%
Percent: [=================== ] 94.0%
Percent: [=================== ] 95.0%
Percent: [=================== ] 96.0%
Percent: [=================== ] 97.0%
Percent: [====================] 98.0%
Percent: [====================] 99.0%
Percent: [====================] 100% Done...


Test completed
>>>

编辑:您可以看到正在同一行上打印,但它附加在最后一次打印的末尾,而不是覆盖,这是预期的效果。谢谢!

最佳答案

>>> import time
>>> for i in range(0, 101, 10):
... print('\rYou have finished %3d%%' % i, end='', flush=True)
... time.sleep(1)
... else:
... print()
...
You have finished 100%
>>>

在 win32 上使用 Python 3.4.3 为我工作...

Idle 无法正确呈现回车符。

查看python print one line same space . “完成,我错误地使用了 IDLE”或 Implementing a backspace in Python 3.3.2 Shell using Idle .

Idle 更像是一个 Python 文本编辑器,没有真正的控制台...因此您无法解释控制符号并同时正确打印它...

>>> print("asd\rfgh")
asdfgh

关于python - Windows 上 Python 控制台中的进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32197618/

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