Python实现带百分比的进度条


Posted in Python onJune 28, 2016

大家在安装程序或下载文件时,通常都能看到进度条,提示你当前任务的进度。其实,在python中实现这个功能很简单,下面是具体代码。在实际应用中,你完全可以根据自己的要求进行修改!比如,示例中是通过time.sleep()方法进行时间延迟,你完全可以根据实际的程序运行耗时进行控制;同样,在进度百分比处,你也可以显示实际的进度比,而不是例子中机械的自增百分比。

import sys
import time

def view_bar(num, total):
  rate = num / total
  rate_num = int(rate * 100)
  r = '\r[%s%s]%d%%' % ("="*num, " "*(100-num), rate_num, )
  sys.stdout.write(r)
  sys.stdout.flush()

if __name__ == '__main__':
  for i in range(0, 101):
    time.sleep(0.1)
    view_bar(i, 100)

再给大家分享一个方法

import hashlib
 
a = "a test string"
print hashlib.md5(a).hexdigest()
print hashlib.sha1(a).hexdigest()
print hashlib.sha224(a).hexdigest()
print hashlib.sha256(a).hexdigest()
print hashlib.sha384(a).hexdigest()
print hashlib.sha512(a).hexdigest()

再来一个复杂点的函数吧

#!/usr/bin/env python
#-*- coding:utf-8 -*-
import threading
import time
'''
class Demo:
  def __init__(self,thread_num=5):
    self.thread_num=thread_num
  def productor(self,i):
    print "thread-%d start" %i
  def start(self):
    threads=[]
    for x in xrange(self.thread_num):
      t=threading.Thread(target=self.productor,args=(x,))
      threads.append(t)
    for t in threads:
      t.start()
    for t in threads:
      t.join()
    print 'all thread end'
 
demo=Demo()
demo.start()
'''
thread_num=10
def productor(i):
    print "thread-%d start" %i
    time.sleep(2)
def start():
    threads=[]
    for x in range(thread_num):
      t=threading.Thread(target=productor,args=(x,))
      threads.append(t)
    for t in threads:
      t.start()
    for t in threads:
      t.join()
    print 'all thread end'

start()
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import paramiko
import sys

private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
t = paramiko.Transport(('vm_135',22))
# 连接服务器
t.connect(username='root',pkey=private_key)
ssh.connect(hostname='vm_135', port=22, username='root',pkey=private_key)
# 执行命令
sftp = paramiko.SFTPClient.from_transport(t)
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = stdout.read()
print result

def progress_bar(transferred, toBeTransferred, suffix=''):
    # print "Transferred: {0}\tOut of: {1}".format(transferred, toBeTransferred)
    bar_len = 60
    filled_len = int(round(bar_len * transferred/float(toBeTransferred)))
    percents = round(100.0 * transferred/float(toBeTransferred), 1)
    bar = '=' * filled_len + '-' * (bar_len - filled_len)
    sys.stdout.write('[%s] %s%s ...%s\r' % (bar, percents, '%', suffix))
    sys.stdout.flush()
sftp.put("/tmp/134","/tmp/134",callback=progress_bar)

#for filename in filenames:
#  sftp.put(os.path.join(dirpath, filename),
#       os.path.join(remote_path, filename),
#       callback=self.progress_bar)
#  print
#  print "upload %s/%s" % (remote_path, filename) + '\t' + '[' + green("success") + ']'
ssh.close()

以上就是本文的全部内容了,大家是否对使用Python实现带百分比进度条有了新的认识了呢,希望大家能够喜欢。

Python 相关文章推荐
Python中用startswith()函数判断字符串开头的教程
Apr 07 Python
Python实现身份证号码解析
Sep 01 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
Apr 24 Python
Python之Web框架Django项目搭建全过程
May 02 Python
Python利用flask sqlalchemy实现分页效果
Aug 02 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
Django如何将URL映射到视图
Jul 29 Python
python tkinter之 复选、文本、下拉的实现
Mar 04 Python
使用python批量转换文件编码为UTF-8的实现
Apr 03 Python
简单了解Django项目应用创建过程
Jul 06 Python
python文件及目录操作代码汇总
Jul 08 Python
python+selenium小米商城红米K40手机自动抢购的示例代码
Mar 24 Python
Python中的字符串替换操作示例
Jun 27 #Python
Python的string模块中的Template类字符串模板用法
Jun 27 #Python
Python的Flask框架及Nginx实现静态文件访问限制功能
Jun 27 #Python
总结网络IO模型与select模型的Python实例讲解
Jun 27 #Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 #Python
Python的Tornado框架的异步任务与AsyncHTTPClient
Jun 27 #Python
深入解析Python中的descriptor描述器的作用及用法
Jun 27 #Python
You might like
提升PHP执行速度全攻略(上)
2006/10/09 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
2016/05/18 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
jQuery实现弹窗居中效果类似alert()
2017/02/27 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
Vue拖拽组件开发实例详解
2018/05/11 Javascript
vue 循环加载数据并获取第一条记录的方法
2018/09/26 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
Python中for循环详解
2014/01/17 Python
python3.x上post发送json数据
2018/03/04 Python
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
eclipse创建python项目步骤详解
2019/05/10 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
AJAX都有哪些有点和缺点
2012/11/03 面试题
机电一体化专业应届本科生求职信
2013/09/27 职场文书
酒店实习个人鉴定
2013/12/07 职场文书
财务会计专业个人求职信范本
2014/01/08 职场文书
五年级英语教学反思
2014/01/31 职场文书
伊琍体标语
2014/06/25 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
入党现实表现材料
2014/12/23 职场文书
自荐信模板大全
2015/03/27 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
JUnit5常用注解的使用
2021/07/02 Java/Android
HDFS免重启挂载新磁盘
2022/04/06 Servers