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 相关文章推荐
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
Dec 20 Python
利用Hyperic调用Python实现进程守护
Jan 02 Python
TensorFlow Session使用的两种方法小结
Jul 30 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
May 13 Python
在SQLite-Python中实现返回、查询中文字段的方法
Jul 17 Python
3种python调用其他脚本的方法
Jan 06 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
Feb 27 Python
django 读取图片到页面实例
Mar 27 Python
Python unittest单元测试框架及断言方法
Apr 15 Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 Python
python全面解析接口返回数据
Feb 12 Python
Python代码实现双链表
May 25 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 smarty模板引擎的6个小技巧
2014/04/24 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
php实现的简单日志写入函数
2015/03/31 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
2011/11/30 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
[01:44]Ti10举办地公布
2019/08/25 DOTA
python sys模块sys.path使用方法示例
2013/12/04 Python
python实现爬山算法的思路详解
2019/04/09 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
盖尔斯工厂店:GUESS Factory
2020/01/21 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
opencv实现图像几何变换
2021/03/24 Python
大学生职业生涯规划书模板
2014/01/18 职场文书
新闻报道策划方案
2014/06/11 职场文书
幼儿园中班区域活动总结
2014/07/09 职场文书
借款协议书
2014/09/16 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
迎新生晚会主持词
2015/06/30 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技