跳转到主要内容

使用Python为文本界面提供人性化输出

项目描述

https://github.com/xolox/python-humanfriendly/actions/workflows/test.yml/badge.svg?branch=master https://codecov.io/gh/xolox/python-humanfriendly/branch/master/graph/badge.svg?token=jYaj4T74TU

可以使用humanfriendly包中的函数和类来使文本界面更易于使用。一些示例功能

  • 以简单、人性化的格式解析和格式化数字、文件大小、路径名和时间跨度。

  • 用于长时间运行操作的可使用计时器,结果时间跨度的格式也为人性化。

  • 通过键入选项编号或选项的唯一子串来提示用户从选项列表中选择。

  • 终端交互,包括文本样式(ANSI转义序列)、友好的用法消息渲染以及查询终端大小。

目前,《humanfriendly》包在Linux和macOS上针对Python 2.7、3.5+和PyPy(2.7)进行了测试。虽然打算也支持Windows,但您可能会遇到一些边缘问题。

入门

开始使用《humanfriendly》包非常简单

>>> from humanfriendly import format_size, parse_size
>>> from humanfriendly.prompts import prompt_for_input
>>> user_input = prompt_for_input("Enter a readable file size: ")

  Enter a readable file size: 16G

>>> num_bytes = parse_size(user_input)
>>> print(num_bytes)
16000000000
>>> print("You entered:", format_size(num_bytes))
You entered: 16 GB
>>> print("You entered:", format_size(num_bytes, binary=True))
You entered: 14.9 GiB

要演示支持的控制台文本样式(基于ANSI转义序列),您可以运行以下命令

$ humanfriendly --demo

命令行

用法: humanfriendly [选项]

基于同名的Python包的命令行上的人性化输入/输出(文本格式化)。

支持选项

选项

描述

-c, --run-command

执行外部命令(作为位置参数给出)并在命令运行时显示旋转器和计时器。命令的退出状态会被传递。

--format-table

从标准输入读取表格数据(每行是一个行,每个空白分隔的字段是一个列),将数据格式化为表格,并将结果表格打印到标准输出。有关更多信息,请参阅--delimiter选项。

-d, --delimiter=VALUE

--format-table使用的分隔符更改为VALUE(一个字符串)。默认情况下,所有空白都被视为分隔符。

-l, --format-length=LENGTH

将长度计数(以整数或浮点数LENGTH给出)转换为人类可读的字符串,并将其打印到标准输出。

-n, --format-number=VALUE

格式化一个数字(以整数或浮点数VALUE给出),带有千位分隔符和两位小数(如有必要),并将格式化后的数字打印到标准输出。

-s, --format-size=BYTES

将字节计数(以整数BYTES给出)转换为人类可读的字符串,并将其打印到标准输出。

-b, --binary

-s--format-size的输出更改为使用字节的二进制倍数(基2),而不是默认的十进制倍数(基10)。

-t, --format-timespan=SECONDS

将秒数(以浮点数SECONDS给出)转换为人类可读的时间段,并将其打印到标准输出。

--parse-length=VALUE

解析人类可读的长度(以字符串VALUE给出)并打印出米数到标准输出。

--parse-size=VALUE

解析人类可读的数据大小(以字符串VALUE给出)并打印出字节数到标准输出。

--demo

演示使用ANSI转义序列更改终端字体样式和颜色。

-h, --help

显示此信息并退出。

关于大小单位的说明

当我最初发布 humanfriendly 包时,我选择了以字节为单位的二进制倍数(2的幂)。多次有人指出这是一个糟糕的选择(参见问题 #4 和拉取请求 #8#9),因此新的默认值变为以字节为单位的十进制倍数(10的幂)。

单位

二进制值

十进制值

KB

1024

1000

MB

1048576

1000000

GB

1073741824

1000000000

TB

1099511627776

1000000000000

等等

可以通过将关键字参数 binary=True 传递给 format_size()parse_size() 函数来保留使用以字节为单位的二进制倍数的选项。

Windows支持

Windows 10 获得了对 ANSI 转义序列的原生支持,这意味着像 humanfriendly --demo 这样的命令应该可以立即工作(如果你的系统足够更新)。如果不起作用,您可以安装 colorama 包,安装后它会自动使用。

联系方式

最新版本的 humanfriendly 可在 PyPIGitHub 上找到。文档托管在 Read the Docs 上,包括 变更日志。对于错误报告,请在 GitHub 上创建一个问题。如果您有任何问题、建议等,请随时通过电子邮件发送给我,邮箱地址为 peter@peterodding.com

许可协议

本软件受 MIT 许可证 许可。

© 2021 Peter Odding。

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

humanfriendly-10.0.tar.gz (360.7 kB 查看哈希值)

上传时间 源代码

构建分发

humanfriendly-10.0-py2.py3-none-any.whl (86.8 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者