热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pythonrich_Python本月热门项目:用rich库丰富和美化终端输出

您的浏览器不支持audio标签。如何美化python终端输出的json或dict格式呢?一般开发者们会选用pprint,或直接copy输出结果ÿ

您的浏览器不支持 audio 标签。

如何美化python终端输出的json或dict格式呢?一般开发者们会选用pprint,或直接copy输出结果,在vscode或其他美化json的页面格式化一下,因为格式美化输出并不是刚需,仅仅是为了便于理解。一般仅在比较成熟的项目上,想要美化下的化,就可以使用这篇文章推荐的rich库了。

0.安装

pip install rich

1.基本用法

from rich.console import Console

from rich.theme import Theme

custom_theme = Theme({

"info" : "dim cyan",

"warning": "magenta",

"danger": "bold red"

})

console = Console(theme=custom_theme)

console.print("This is information", style="info")

console.print("Something terrible happened!", style="danger")

console.print("Google", style="link https://google.com")

2.其他用法

1.格式化json文本

2.表格输出

还有其他的,比如markdown输出等等。稍微参考下就可以上手,本站以下面的progress为例,实际演示下:

3. Progress制作下载进度条

效果图如下:

实现代码:

import os

from concurrent.futures import ThreadPoolExecutor

from typing import Iterable

from urllib.request import urlretrieve

from rich.progress import (

BarColumn,

DownloadColumn,

TextColumn,

TransferSpeedColumn,

TimeRemainingColumn,

Progress,

TaskID,

)

progress = Progress(

TextColumn("[bold blue]{task.fields[filename]}", justify="right"),

BarColumn(bar_width=None),

"[progress.percentage]{task.percentage:>3.1f}%",

"•",

DownloadColumn(),

"•",

TransferSpeedColumn(),

"•",

TimeRemainingColumn(),

)

class progress_bar():

def __init__(self, task_id):

self.task_id = task_id

def __call__(self, block_num, block_size, total_size):

progress.update(self.task_id, advance=1 * block_size, total=total_size)

def touch(fname, times=None):

with open(fname, 'a'):

os.utime(fname, times)

def copy_url(task_id: TaskID, url: str, path: str) -> None:

"""Copy data from a url to a local file."""

urlretrieve(url, path, progress_bar(task_id))

touch(path + ".done")

def download(urls: Iterable[str], dest_dir: str):

"""Download multuple files to the given directory."""

with progress:

with ThreadPoolExecutor(max_workers=4) as pool:

for url in urls:

filename = url.split("/")[-1]

dest_path = os.path.join(dest_dir, filename)

task_id = progress.add_task("download", filename=filename)

pool.submit(copy_url, task_id, url, dest_path)

if __name__ == "__main__":

urls = ["https://xxxx","https://xxxx"] #此处为需要下载的资源列表,链接地址

download(urls,"./") #填入下载的资源列表,默认输出在当面目录

4. 小结

关于美化是否有必要?个人认为,如果不是最终商用输出,估计一辈子也不会用到此类工具。但是如果你想要输出带点色彩,那么这个rich库则是最佳选择,使用该库可以轻易做到美化的显示输出。那么,最为开发人员,你需要彩色吗?答案肯定是否!但是从小白或受众用户而言,添加这个则是锦上添花,很有必要。所以该库的使用也是非常矛盾的。顺便一提的是,jupyter的官方实验室没有把我打进jupyter的大门,微软的jupyter也没有,最终反而是谷歌的Colaboratory把我带进了jupyter。被谷歌提供的各种案例、机器学习给折服了。或许只有最终应用,才能凸显意义,否则就算有再好的工具,也没意义,而本篇的rich库就是这样,知道是好东西,只有广泛使用了才是你的。

佰阅部落 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权

转载请注明原文链接:Python本月热门项目:用rich库丰富和美化终端输出



推荐阅读
  • 本文介绍了在安装或运行 Python 项目时遇到的 'ModuleNotFoundError: No module named setuptools_rust' 错误,并提供了解决方案。 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
  • Python 异步编程:ASGI 服务器与框架详解
    自 Python 3.5 引入 async/await 语法以来,异步编程迅速崛起,吸引了大量开发者的关注。本文将深入探讨 ASGI(异步服务器网关接口)及其在现代 Python Web 开发中的应用,介绍主流的 ASGI 服务器和框架。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文详细介绍了在Android 8.x中,GMS认证新增的CTS和VTS测试,特别是如何在VTS环境下测试GSI版本。文章涵盖了详细的测试环境配置和具体操作步骤。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • Git管理工具SourceTree安装与使用指南
    本文详细介绍了Git管理工具SourceTree的安装、配置及团队协作方案,旨在帮助开发者更高效地进行版本控制和项目管理。 ... [详细]
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
author-avatar
每天进步一点就好
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有