有些时候当我们处理数据的时候,需要显示处理进度:
比如有一个数据集:
import numpy as np
i = np.arange(1, 10000)
print(i)
# [ 1 2 3 ... 9997 9998 9999]
我们编写了一个程序,让每个成员加一:
from time import sleep
def add1(j):
for n in range(len(j)):
sleep(0.0001)
j[n] = j[n] + 1
return j
i = add1(i)
print(i)
# [ 2 3 4 ... 9998 9999 10000]
想看这个add1()程序处理数据的进度,可以使用sys.stdout.write()函数
import sys
from time import sleep
def add1(j):
for n in range(len(j)):
sleep(0.0001)
j[n] = j[n] + 1
sys.stdout.write("\r# Process: %0.1f %%" % (float(n) / float(len(j)) * 100))
return j
i = add1(i)
print("\n", i)
# Process: 100.0 %
# [ 2 3 4 ... 9998 9999 10000]
Tips:
1. 如果在下面加上以下代码则表示一秒刷新一次
sys.stdout.write("```")
sys.stdout.flush() # 一秒刷新一次
2. 保留小数位数
0.1f --> 保留一位
0.2f --> 保留两位