zoukankan      html  css  js  c++  java
  • 带你了解Python炫酷的颜色输出与进度条打印

    Python风骚的打印

    大家平时在Linux/Windows下安装软件时,经常会出现进度条和百分比的提示,Python是否能实现这样的打印?安装过程中,经常会看到很多带颜色的安装说明,我们在python输出时,确是千篇一律的黑底白色,是否想过打印的炫酷一些呢?

    作其实很简单,今天就来教教大家,通过几分钟的学习让之后代码的输出变得与众不同!

    Python打印进度条

    python打印进度条的原理其实很简单,先让我们看一个例子吧:

     1# -*- coding: utf-8 -*-
     2# @Author   : 王翔
     3# @WeChat   : King_Uranus
     4# @公众号    : 清风Python
     5# @Date     : 2019/9/16 22:09
     6# @Software : PyCharm
     7# @version  :Python 3.7.3
     8# @File     : ProgressBar.py
     9
    10import time
    11
    12def progress_bar(total):
    13    if total <= 0:
    14        raise ValueError("Wrong total number ...")
    15    # step = (100 // total if total <= 100 else total // 100)
    16
    17    for i in range(0, total):
    18        time.sleep(0.05)
    19        step = int(100 / total * (i + 1))
    20        str1 = '
    [%3d%%] %s' % (step, '>' * step)
    21        print(str1, end='', flush=True)
    22
    23progress_bar(20)
    24print()
    25progress_bar(110)

    打印进度条

    我们通过自己实现了进度条的展示,那么python是否具备现成的模块呢?答案是Yes! tqdm 

    Tqdm 是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。
    安装:pip install tqdm

    来看一个例子:

    1from tqdm import tqdm
    2import string
    3import time
    4
    5for char in tqdm(string.ascii_uppercase):
    6    time.sleep(0.1)
    7
    8for i in tqdm(range(50)):
    9    time.sleep(0.05)

    tqdm进度条

    tqdm的强大远不止此,喜欢的朋友可以去它的git网址详细学习:https://github.com/tqdm/tqdm

    Python带色彩输出

    python颜色输出其实只是调用了命令号的相关特殊标记,shell中我们也经常使用它:

     1print('33[30m打印前景色033[0m')
     2print('33[31m打印前景色133[0m')
     3print('33[32m打印前景色233[0m')
     4print('33[33m打印前景色333[0m')
     5print('33[34m打印前景色433[0m')
     6print('33[35m打印前景色533[0m')
     7print('33[36m打印前景色633[0m')
     8print('33[37m打印前景色733[0m')
     9print('33[40m打印背景色033[0m')
    10print('33[41m打印背景色133[0m')
    11print('33[42m打印背景色233[0m')
    12print('33[43m打印背景色333[0m')
    13print('33[44m打印背景色433[0m')
    14print('33[45m打印背景色533[0m')
    15print('33[46m打印背景色633[0m')
    16print('33[47m打印背景色733[0m')
    17print('33[0m打印显示方式033[0m')
    18print('33[1m打印显示方式133[0m')
    19print('33[4m打印显示方式433[0m')
    20print('33[5m打印显示方式533[0m')
    21print('33[7m打印显示方式733[0m')
    22print('33[8m打印显示方式833[0m')
    23print('33[5;31;47m综合打印33[0m')

    颜色类型打印

    每条默认的33[0m为回复终端默认
    最后一个33[5;31;47m综合打印为使用闪烁方式红色字体白色背景色打印文字!

    参数说明:

    前景色 背景色 颜色
    30 40 黑色
    31 41 红色
    32 42 绿色
    33 43 黃色
    34 44 洋红
    36 46 青色
    37 47 白色
    显示方式 意义
    0 终端默认设置
    1 高亮显示
    22 非高亮显示
    4 使用下划线
    24 去下划线
    5 闪烁
    25 去闪烁
    7 反白显示
    27 非反显
    8 不可见
    28 可见

    那么和上面一样的套路,python中是否有模块能实现这种颜色打印的功能呢?答案依然是Yes! colorama 

    Python的Colorama模块,可以跨多终端,显示字体不同的颜色和背景,只需要导入colorama模块即可,不用再每次都像linux一样指定颜色。
    pip install colorama
    Fore是针对字体颜色,Back是针对字体背景颜色,Style是针对字体格式
    Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
    Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
    Style: DIM, NORMAL, BRIGHT, RESET_ALL

    1>>> from colorama import Fore, Back, Style
    2>>> print(Fore.RED + '打印红色文字')
    3>>> 打印红色文字
    4>>> print(Back.GREEN + '设置背景为绿色')
    5>>> 设置背景为绿色
    6>>> print(Style.RESET_ALL)
    7>>> print('恢复默认')
    8>>> 恢复默认

    打印颜色示例

    细心的网友看到,我们如果没有恢复默认的话,会继承上面的颜色状态。那么,如何像刚才一样,每次输出后自动化恢复呢?

    1from colorama import init, Fore, Back, Style
    2
    3init(autoreset=True)
    4print(Fore.RED + '打印红色文字')
    5print(Back.GREEN + '设置背景为绿色')
    6print('恢复默认')

    自动恢复默认

    希望今天的内容大家能喜欢….

    作者:华为云特约供稿开发者  清风Python

  • 相关阅读:
    字节跳动软开校招岗
    众安保险软开校招岗
    topjui中combobox使用
    easyui中datagrid+layout布局
    jquery/js记录点击事件,单击次数加一,双击清零
    java图片上传及图片回显1
    java格式化
    java中的String整理
    删除window10没用的服务
    修改mysql默认端口
  • 原文地址:https://www.cnblogs.com/2020-zhy-jzoj/p/13165114.html
Copyright © 2011-2022 走看看