使用Python为文本界面提供人性化输出
项目描述
可以使用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 可在 PyPI 和 GitHub 上找到。文档托管在 Read the Docs 上,包括 变更日志。对于错误报告,请在 GitHub 上创建一个问题。如果您有任何问题、建议等,请随时通过电子邮件发送给我,邮箱地址为 peter@peterodding.com。
许可协议
本软件受 MIT 许可证 许可。
© 2021 Peter Odding。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
构建分发
humanfriendly-10.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc |
|
MD5 | 79ae9293181aa113698ee3393f202188 |
|
BLAKE2b-256 | cc3f2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43 |
humanfriendly-10.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477 |
|
MD5 | f0bc5c4d63a4b6208f89daf517c68223 |
|
BLAKE2b-256 | f00f310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169 |