帮助漂亮地打印具有类似atree结构的ascii表
treetable的Python项目详细描述
三表
帮助漂亮地打印具有树状结构的ascii表。
安装和要求
treetable
至少需要python3.6。
pip3 install treetable
快速示例
treetable
允许轻松输出复杂的ascii表,如
|| || metrics
|| info || train | test
name || index status || Pr recall | auc accuracy
RirpUoE || 21 L || 94.4% 56.4% | 46.3% 79.6%
wtAYHBf || ||
j || ||
rLsITTK || 47 q || 66.0% 84.8% | 46.5% 64.9%
S || ||
Uumlvod || 49 Z || 63.1% 99.8% | 94.6% 10.6%
SmIsO || ||
rzXlDqM || 32 J || 48.8% 33.5% | 30.8% 94.2%
PyCX || ||
用法和示例
主要功能是treetable.treetable
。它有树状结构
代表桌子。例如,我可以有一个子表info
,并且
子表metrics
,每个子表递归地由其他子表组成。
每个额外级别的子表使用不同的分隔符(默认情况下最多3个
级别,但您可以使用separators
参数提供额外的分隔符。
在树的叶级,一个格式字符串(可以传递给
format
内置)可以指定。让我们举个例子
fromtreetableimporttable,group,leafmytable=table([group('info',[leaf('name'),leaf('index')]),group('metrics',align='>',groups=[leaf('speed','.0f'),leaf('accuracy','.1%'),leaf('special','.1%',align='=')]),])
应在嵌套列表之后提供表的行 具有相同形状的词典,例如:
lines=[{'info':{'name':'bob','index':4},'metrics':{'speed':200,'accuracy':0.21,'special':0.1}},{'info':{'name':'alice','index':2},'metrics':{'speed':67,'accuracy':0.45,'special':4.56}},]
现在运行print(treetable(lines, groups))
将为您提供
info | metrics
name index | speed accuracy special
bob 4 | 200 21.0% 10.0%
alice 2 | 67 45.0% 456.0%
table
、group
和leaf
都是节点定义函数。他们都是
接受相同的参数,并且只在位置参数的顺序上有所不同。
在叶节点中定义时,参数将直接影响
如何呈现数据。在组节点或根(aka table)节点中,
它们将覆盖子叶中的默认行为。以下
参数已定义:
key
:数据结构中的访问键。groups
(仅适用于group
和table
节点):子表列表。display
:与要访问的名称不同时使用的显示名称lines
结构中的值。align
:文本对齐,'<;'(左对齐)、'='(居中)或 “>;”(右对齐)。wrap
:将文本包装到一定数量的字符之外。没有漂亮的包装, 这将通过插入新行在限制字符处完全换行。missing
:特定键不存在时使用的值。违约 是''
。shorten
:自动缩短列名。它们没有缩短 大于基础列的宽度和足够长的前缀 保留以消除与同一列中的其他列之间的任何可能的歧义 子标签。
例如,将shorten=True
与上表一起使用时:
info | metrics
name i | spee accur specia
bob 4 | 200 21.0% 10.0%
alice 2 | 67 45.0% 456.0%
name
没有缩短,因为alice
比name
长,所以
不要缩短它。但是speed
保持的时间足够长
避免与special
产生歧义。
当为name
列设置wrap=3
时,我们获得以下结果:
info | metrics
nam i | spee accur specia
bob 4 | 200 21.0% 10.0%
ali 2 | 67 45.0% 456.0%
ce |
可以通过传递
separators
到treetable
函数。其默认值为
[' ', ' | ', ' || ']
。
许可证
treetable
是在无许可证许可下分发的。
有关详细信息,请参阅许可证文件。