来看看Python炫酷的颜色输出与进度条打印

系统 1334 0
英语单词优化

上篇文章写到了Python开发英语单词记忆工具,其中依赖了bootstrap.css jQuery.js 基础html模块以及片段的css样式。有些朋友问,怎么能将这个练习题打包成单独的exe可执行文件,来脱离python环境使用呢?
来看看Python炫酷的颜色输出与进度条打印_第1张图片
在这里跟大家简单说下思路,有需求的朋友可以自己去扒拉扒拉…
依赖的css和js,如果有外网的前提,可以使用bootcdn提供的链接引用:
https://cdn.bootcss.com/jquery/3.4.0/jquery.min.js
https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css
自己编辑的css样式,可以添加在head中的style中
基础html可以作为一大段的string在python中进行定义,最终替换关键内容后输出。至于cet4的单词表,建议就不要添加在代码中了,和打出来的exe文件放置在一起即可。
好了,思路就是这些,喜欢的朋友可以去尝试做一下,这样就可以无时无刻给自己出一份英语练习测试题了。

Python风骚的打印!

大家平时在Linux/Windows下安装软件时,经常会出现进度条和百分比的提示,Python是否能实现这样的打印?安装过程中,经常会看到很多带颜色的安装说明,我们在python输出时,确是千篇一律的黑底白色,是否想过打印的炫酷一些呢?
以上操作其实很简单,今天就来教教大家,通过几分钟的学习让之后代码的输出变得与众不同!

Python打印进度条

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

            
              
                # -*- coding: utf-8 -*-
              
              
                # @Author   : 王翔
              
              
                # @WeChat   : King_Uranus
              
              
                # @公众号    : 清风Python
              
              
                # @Date     : 2019/9/16 22:09
              
              
                # @Software : PyCharm
              
              
                # @version  :Python 3.7.3
              
              
                # @File     : ProgressBar.py
              
              
                import
              
               time


              
                def
              
              
                progress_bar
              
              
                (
              
              total
              
                )
              
              
                :
              
              
                if
              
               total 
              
                <=
              
              
                0
              
              
                :
              
              
                raise
              
               ValueError
              
                (
              
              
                "Wrong total number ..."
              
              
                )
              
              
                # step = (100 // total if total <= 100 else total // 100)
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                0
              
              
                ,
              
               total
              
                )
              
              
                :
              
              
        time
              
                .
              
              sleep
              
                (
              
              
                0.05
              
              
                )
              
              
        step 
              
                =
              
              
                int
              
              
                (
              
              
                100
              
              
                /
              
               total 
              
                *
              
              
                (
              
              i 
              
                +
              
              
                1
              
              
                )
              
              
                )
              
              
        str1 
              
                =
              
              
                '\r[%3d%%] %s'
              
              
                %
              
              
                (
              
              step
              
                ,
              
              
                '>'
              
              
                *
              
               step
              
                )
              
              
                print
              
              
                (
              
              str1
              
                ,
              
               end
              
                =
              
              
                ''
              
              
                ,
              
               flush
              
                =
              
              
                True
              
              
                )
              
              

progress_bar
              
                (
              
              
                20
              
              
                )
              
              
                print
              
              
                (
              
              
                )
              
              
progress_bar
              
                (
              
              
                110
              
              
                )
              
            
          

来看看Python炫酷的颜色输出与进度条打印_第2张图片

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

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

来看一个例子:

            
              
                from
              
               tqdm 
              
                import
              
               tqdm

              
                import
              
               string

              
                import
              
               time


              
                for
              
               char 
              
                in
              
               tqdm
              
                (
              
              string
              
                .
              
              ascii_uppercase
              
                )
              
              
                :
              
              
    time
              
                .
              
              sleep
              
                (
              
              
                0.1
              
              
                )
              
              
                for
              
               i 
              
                in
              
               tqdm
              
                (
              
              
                range
              
              
                (
              
              
                50
              
              
                )
              
              
                )
              
              
                :
              
              
    time
              
                .
              
              sleep
              
                (
              
              
                0.05
              
              
                )
              
            
          

来看看Python炫酷的颜色输出与进度条打印_第3张图片

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

Python带色彩输出

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

            
              
                print
              
              
                (
              
              
                '\033[30m打印前景色0\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[31m打印前景色1\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[32m打印前景色2\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[33m打印前景色3\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[34m打印前景色4\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[35m打印前景色5\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[36m打印前景色6\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[37m打印前景色7\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[40m打印背景色0\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[41m打印背景色1\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[42m打印背景色2\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[43m打印背景色3\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[44m打印背景色4\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[45m打印背景色5\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[46m打印背景色6\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[47m打印背景色7\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[0m打印显示方式0\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[1m打印显示方式1\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[4m打印显示方式4\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[5m打印显示方式5\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[7m打印显示方式7\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[8m打印显示方式8\033[0m'
              
              
                )
              
              
                print
              
              
                (
              
              
                '\033[5;31;47m综合打印\033[0m'
              
              
                )
              
            
          

来看看Python炫酷的颜色输出与进度条打印_第4张图片

每条默认的**\033[0m 为回复终端默认
最后一个
\033[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

            
              
                >>
              
              
                >
              
              
                from
              
               colorama 
              
                import
              
               Fore
              
                ,
              
               Back
              
                ,
              
               Style

              
                >>
              
              
                >
              
              
                print
              
              
                (
              
              Fore
              
                .
              
              RED 
              
                +
              
              
                '打印红色文字'
              
              
                )
              
              
                >>
              
              
                >
              
               打印红色文字

              
                >>
              
              
                >
              
              
                print
              
              
                (
              
              Back
              
                .
              
              GREEN 
              
                +
              
              
                '设置背景为绿色'
              
              
                )
              
              
                >>
              
              
                >
              
               设置背景为绿色

              
                >>
              
              
                >
              
              
                print
              
              
                (
              
              Style
              
                .
              
              RESET_ALL
              
                )
              
              
                >>
              
              
                >
              
              
                print
              
              
                (
              
              
                '恢复默认'
              
              
                )
              
              
                >>
              
              
                >
              
               恢复默认

            
          

来看看Python炫酷的颜色输出与进度条打印_第5张图片

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

            
              
                from
              
               colorama 
              
                import
              
               init
              
                ,
              
               Fore
              
                ,
              
               Back
              
                ,
              
               Style

init
              
                (
              
              autoreset
              
                =
              
              
                True
              
              
                )
              
              
                print
              
              
                (
              
              Fore
              
                .
              
              RED 
              
                +
              
              
                '打印红色文字'
              
              
                )
              
              
                print
              
              
                (
              
              Back
              
                .
              
              GREEN 
              
                +
              
              
                '设置背景为绿色'
              
              
                )
              
              
                print
              
              
                (
              
              
                '恢复默认'
              
              
                )
              
            
          

来看看Python炫酷的颜色输出与进度条打印_第6张图片

关于装13,只能帮大家到这里了,希望今天的内容大家能喜欢…

往期文章精选

使用Python开发小说下载器,不再为下载小说而发愁
Python开发英语单词自测工具,助你逆袭单词王!
使用Python编写打字训练小程序
Python开发GUI工具介绍,实战:将图片转化为素描画!
Python一秒搭建ftp服务器,帮助你在局域网共享文件
将Android手机打造成你的python开发者桌面
Flask开发VIP版 HttpServer
Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署
Python爬虫批量下载糗事百科段子
python使你再也不为文章配图与素材发愁,让高清图片占满你的硬盘!
装13失败后,我决定使用Python为生僻字批量注音

The End

OK,今天的内容就到这里,如果觉得内容对你有所帮助,欢迎点击文章右下角的“ 在看 ”。
期待你关注我的公众号 清风Python ,如果觉得不错,希望能动动手指转发给你身边的朋友们。
希望每周一至五清晨的7点10分,都能让清风Python的知识文章叫醒大家!谢谢……
来看看Python炫酷的颜色输出与进度条打印_第7张图片


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论