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 相关文章推荐
使用C语言扩展Python程序的简单入门指引
Apr 14 Python
Python单例模式实例详解
Mar 01 Python
Python线性回归实战分析
Feb 01 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
Jul 26 Python
python pandas实现excel转为html格式的方法
Oct 23 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
Dec 21 Python
python实现一个简单的ping工具方法
Jan 31 Python
python pytest进阶之conftest.py详解
Jun 27 Python
django框架用户权限中的session缓存到redis中的方法
Aug 06 Python
django基于存储在前端的token用户认证解析
Aug 06 Python
如何更换python默认编辑器的背景色
Aug 10 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 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 CI框架插入一条或多条sql记录示例
2014/07/29 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
2018/06/09 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
2020/01/04 PHP
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
轻松实现js图片预览功能
2016/01/18 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
qrcode生成二维码微信长按无法识别问题的解决
2019/04/04 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
[05:10]2014DOTA2国际邀请赛 通往胜利之匙赛场探秘之旅
2014/07/18 DOTA
python简单判断序列是否为空的方法
2015/06/30 Python
Python抓取框架 Scrapy的架构
2016/08/12 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
Python3.5局部变量与全局变量作用域实例分析
2019/04/30 Python
python写入文件自动换行问题的方法
2019/07/05 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
任意存:BOXFUL
2018/05/21 全球购物
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
介绍一下Ruby的多线程处理
2013/02/01 面试题
电脑饰品店的创业计划书
2014/01/21 职场文书
领导失职检讨书
2014/02/24 职场文书
财务统计员岗位职责
2015/04/14 职场文书
焦点访谈观后感
2015/06/11 职场文书
员工工作心得体会
2019/05/07 职场文书
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL
Python selenium模拟网页点击爬虫交管12123违章数据
2021/05/26 Python