简单实现python进度条脚本


Posted in Python onDecember 18, 2017

最近需要用Python写一个小脚本,用到了一些小知识,赶紧抽空记录一下。不深但是常用。

两个进度条示例,拷贝就能运行:

# coding=utf-8

import sys
import time

# width:宽度,  percent:百分比
def progress(width, percent):
  print "\r%s %d%%" % (('%%-%ds' % width) % (width * percent / 100 * '='), percent),
  if percent >= 100:
    print
    sys.stdout.flush()


# 示例一、0%--100%
def demo1():
  for i in xrange(100):
    progress(50, (i + 1))
    time.sleep(0.1)


## 示例二、周期加载
def demo2():
  i = 19
  n = 200
  while n > 0:
    print "\t\t\t%s \r" % (i * "="),
    i = (i + 1) % 20
    time.sleep(0.1)
    n -= 1


demo1()
demo2()

提供一个自己写的一个简单异步进度条,可以在耗时操作前开启,然后再耗时操作结束后停止。

import time
import thread
import sys

class Progress:
  def __init__(self):
    self._flag = False
  def timer(self):
    i = 19
    while self._flag:
      print "\t\t\t%s \r" % (i * "="),
      sys.stdout.flush()
      i = (i + 1) % 20
      time.sleep(0.05)
    print "\t\t\t%s\n" % (19 * "="),
    thread.exit_thread()
  def start(self):
    self._flag = True
    thread.start_new_thread(self.timer, ())
  def stop(self):
    self._flag = False
    time.sleep(1)

用法:

progress = Progress()
progress.start()
time.sleep(5)
progress.stop()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python列表推导式的使用方法
Nov 21 Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
Dec 18 Python
python对DICOM图像的读取方法详解
Jul 17 Python
Python编程之变量赋值操作实例分析
Jul 24 Python
Python中property属性实例解析
Feb 10 Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 Python
使用pip发布Python程序的方法步骤
Oct 11 Python
python 多线程串行和并行的实例
Feb 22 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
Ubuntu16安装Python3.9的实现步骤
Dec 15 Python
Python中相见恨晚的技巧
Apr 13 Python
Python使用PyYAML库读写yaml文件的方法
Apr 06 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
Dec 18 #Python
通过Python 获取Android设备信息的轻量级框架
Dec 18 #Python
python中列表和元组的区别
Dec 18 #Python
Django REST为文件属性输出完整URL的方法
Dec 18 #Python
Python3计算三角形的面积代码
Dec 18 #Python
利用python解决mysql视图导入导出依赖的问题
Dec 17 #Python
python 3.5实现检测路由器流量并写入txt的方法实例
Dec 17 #Python
You might like
PHP异步调用socket实现代码
2012/01/12 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
jQuery动态添加
2016/04/07 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
layer实现弹窗提交信息
2016/12/12 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
JS实现提示框跟随鼠标移动
2019/08/27 Javascript
Vue登录主页动态背景短视频制作
2019/09/21 Javascript
js实现左右轮播图
2020/01/09 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
Python实现抓取页面上链接的简单爬虫分享
2015/01/21 Python
简单介绍Python中的readline()方法的使用
2015/05/24 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
Python实现多属性排序的方法
2018/12/05 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
Python递归函数特点及原理解析
2020/03/04 Python
python PIL模块的基本使用
2020/09/29 Python
澳大利亚相机之家:Camera House
2017/11/30 全球购物
WiFi云数码相框:Nixplay
2018/07/05 全球购物
高三自我鉴定范文
2013/10/19 职场文书
故意伤害辩护词
2015/05/21 职场文书
MySQL 原理与优化之原数据锁的应用
2022/08/14 MySQL