在中国慕课网上学习爬虫视频时,看到一个很有意思的优化,有时候我们进行爬取内容时,为了客户体验较好,可以动态显示出爬取的进度。而其实现很容易…就是一个简单的数学方法。
假设有一个1000000数据的列表(为了让进度条可以显示出来,很大的数据),我们每次循环遍历这个列表时向文件中输出,其中增加一个计数器,每次写文件的过程中循环通过计数器来记录,而最后显示的百分比进度则是用(计数器/list的长度)*100
#coding = utf-8
"""
@author: sy
@file: mooc_stock.py
@time: 2018/3/18 15:01
@desc: 动态显示进度条
"""
def toolBar():
#向列表中填充1000000个数据
list_bar = (range(1000000))
#新增计数器
count = 0
#写到桌面文件中
with open("C:/Users/sy/Desktop/toobar.txt",'w') as f:
for i in list_bar:
f.write(str(i))
count = count + 1
'''
\r:每次讲控制台的光标移动到首位,去掉则不会呈现刷新的效果,最终是打印一行.
end='':print输出不换行,若去掉,则会在控制台每次换行打印当前进度.
'''
print('\r当前速度:{:.2f}%'.format(count*100/len(list_bar)),end='')
if __name__ == '__main__':
toolBar()
百分比进度:(计数器/list的长度)*100
'''
\r:每次讲控制台的光标移动到首位,去掉则不会呈现刷新的效果,最终是打印一行.
end='':print输出不换行,若去掉,则会在控制台每次换行打印当前进度.
'''
print('\r当前速度:{:.2f}%'.format(count*100/len(list_bar)),end='')