发布时间:2018-07-06 09:49:16编辑:Run阅读(7346)
利用python多进程+进度条实现一个有意思的小程序
import random
import time
import sys
from multiprocessing import Process
def processBar_tortoise(num, total, name_icon): # 进度条
rate = num / total
rate_num = int(rate * 100)
s = '起点 ' + '> ' * (total-2) + '终点'
if rate_num == 100:
s = s.split()
s[num] = name_icon
y = ''.join(s)
r = '\r{}\n'.format(y)
else:
s = s.split()
s[num] = name_icon
y = ''.join(s)
r = '\r{}'.format(y)
sys.stdout.write(r)
sys.stdout.flush
def processBar_hare(num, total, name_icon): # 进度条
rate = num / (total+1)
rate_num = int(rate * 100)
s = '起点 ' + '> ' * (total-3) + '终点'
if rate_num == 100:
s = s.split()
s[num] = name_icon
y = ''.join(s)
r = '\r{}\n'.format(y)
else:
s = s.split()
s[num] = name_icon
y = ''.join(s)
r = '\r{}'.format(y)
sys.stdout.write(r)
sys.stdout.flush
def tortoise(total_step):
start_time = time.time()
step = 0
while step < total_step:
time.sleep(0.2)
step += 1
processBar_tortoise(step, total_step+1, '🐢')
end_time = time.time()
print('\n乌龟花了多少时间:{:.2f}'.format(end_time-start_time))
def hare(total_step):
start_time = time.time()
step = 0
flags = [1, 0]
while step < total_step:
time.sleep(0.2)
sleeping = flags[int(random.random() * 10) % 2]
if sleeping:
processBar_hare(step, total_step, '🐇zzz')
else:
step += 2
processBar_hare(step, total_step+2, '🐇')
end_time = time.time()
print('\n兔子花了多少时间:{:.2f}'.format(end_time - start_time))
if __name__ == '__main__':
t = Process(target=tortoise, args=(20,))
h = Process(target=hare, args=(20,))
t.start()
h.start()效果图:

上一篇: pymysql--插入300万数据
下一篇: 没有了
51222
50648
41262
38074
32537
29442
28306
23164
23124
21461
1520°
2235°
1857°
1798°
2093°
1847°
2532°
4250°
4108°
2930°