tabulate直译是制表,让python实现表格化显示。

详解文档_other

tabulate.tabulate(tabular_data, headers=(), tablefmt=u'simple', floatfmt=u'g', numalign=u'decimal', stralign=u'left', missingval=u'')

tabular_data:需要显示的内容。

headers:表头

tablefmt:显示格式,共有如下各种:

- "plain"
- "simple"
- "github"
- "grid"
- "fancy_grid"
- "pipe"
- "orgtbl"
- "jira"
- "presto"
- "psql"
- "rst"
- "mediawiki"
- "moinmoin"
- "youtrack"
- "html"
- "latex"
- "latex_raw"
- "latex_booktabs"
- "textile"

tabulate是一个模块,其中包括tabulate.tabulate()函数

from tabulate import tabulate
tabulate.PRESERVE_WHITESPACE = True   # 保留空格
中文对齐||wcwidth模块

wcwidth模块官方文档

tabulate默认没有考虑中文字符宽度,因此无法对齐,如要实现对齐,需要wcwidth 包。

tabulate 提供多种表格输出风格,示例如下:

table_header = ['Name', 'Chinese', 'Math', 'English']
table_data = [
...     ('Tom', '90', '80', '85'),
...     ('Jim', '70', '90', '80'),
...     ('Lucy', '90', '70', '90'),
... ]

plain

>>> print(tabulate(table_data, headers=table_header, tablefmt='plain'))
Name      Chinese    Math    English
Tom            90      80         85
Jim            70      90         80
Lucy           90      70         90

simple

>>> print(tabulate(table_data, headers=table_header, tablefmt='simple'))
Name      Chinese    Math    English
------  ---------  ------  ---------
Tom            90      80         85
Jim            70      90         80
Lucy           90      70         90
>>> print(tabulate(table_data, headers=table_header, tablefmt='grid'))
+--------+-----------+--------+-----------+
| Name   |   Chinese |   Math |   English |
+========+===========+========+===========+
| Tom    |        90 |     80 |        85 |
+--------+-----------+--------+-----------+
| Jim    |        70 |     90 |        80 |
+--------+-----------+--------+-----------+
| Lucy   |        90 |     70 |        90 |
+--------+-----------+--------+-----------+

fancy_grid

>>> print(tabulate(table_data, headers=table_header, tablefmt='fancy_grid'))
╒════════╤═══════════╤════════╤═══════════╕
│ Name   │   Chinese │   Math │   English │
╞════════╪═══════════╪════════╪═══════════╡
│ Tom    │        90 │     80 │        85 │
├────────┼───────────┼────────┼───────────┤
│ Jim    │        70 │     90 │        80 │
├────────┼───────────┼────────┼───────────┤
│ Lucy   │        90 │     70 │        90 │
╘════════╧═══════════╧════════╧═══════════╛
>>> print(tabulate(table_data, headers=table_header, tablefmt='pipe'))
| Name   |   Chinese |   Math |   English |
|:-------|----------:|-------:|----------:|
| Tom    |        90 |     80 |        85 |
| Jim    |        70 |     90 |        80 |
| Lucy   |        90 |     70 |        90 |

orgtlb

>>> print(tabulate(table_data, headers=table_header, tablefmt='orgtbl'))
| Name   |   Chinese |   Math |   English |
|--------+-----------+--------+-----------|
| Tom    |        90 |     80 |        85 |
| Jim    |        70 |     90 |        80 |
| Lucy   |        90 |     70 |        90 |
>>> print(tabulate(table_data, headers=table_header, tablefmt='jira'))
|| Name   ||   Chinese ||   Math ||   English ||
| Tom    |        90 |     80 |        85 |
| Jim    |        70 |     90 |        80 |
| Lucy   |        90 |     70 |        90 |

presto

>>> print(tabulate(table_data, headers=table_header, tablefmt='presto'))
 Name   |   Chinese |   Math |   English
--------+-----------+--------+-----------
 Tom    |        90 |     80 |        85
 Jim    |        70 |     90 |        80
 Lucy   |        90 |     70 |        90
>>> print(tabulate(table_data, headers=table_header, tablefmt='psql'))
+--------+-----------+--------+-----------+
| Name   |   Chinese |   Math |   English |
|--------+-----------+--------+-----------|
| Tom    |        90 |     80 |        85 |
| Jim    |        70 |     90 |        80 |
| Lucy   |        90 |     70 |        90 |
+--------+-----------+--------+-----------+
>>> print(tabulate(table_data, headers=table_header, tablefmt='rst'))
======  =========  ======  =========
Name      Chinese    Math    English
======  =========  ======  =========
Tom            90      80         85
Jim            70      90         80
Lucy           90      70         90
======  =========  ======  =========
>>> print(tabulate(table_data, headers=table_header, tablefmt='html'))
<table>
<thead>
<tr><th>Name  </th><th style="text-align: right;">  Chinese</th><th style="text-align: right;">  Math</th><th style="text-align: right;">  English</th></tr>
</thead>
<tbody>
<tr><td>Tom   </td><td style="text-align: right;">       90</td><td style="text-align: right;">    80</td><td style="text-align: right;">       85</td></tr>
<tr><td>Jim   </td><td style="text-align: right;">       70</td><td style="text-align: right;">    90</td><td style="text-align: right;">       80</td></tr>
<tr><td>Lucy  </td><td style="text-align: right;">       90</td><td style="text-align: right;">    70</td><td style="text-align: right;">       90</td></tr>
</tbody>
</table>

注意到, tabulate 函数也可以用来生成 html 表格定义代码。 此外,还支持 mediawikimoinmoinyoutracklatexlatex_rawlatex__booktabstextile 表格生成。

  1. Python语言小册子

.
.
.
2019-03-25 13:11:00写于上海

该库主要用于CLI程序,这些程序会小心地为Terminals生成输出,或假装为仿真器。 问题陈述:大多数字符串的可打印长度等于它们在屏幕上占据的单元数1 charater : 1 cell字符1 charater : 1 cell 。 但是,有些类别的字符占用2个像元(全角),而其他字符则占用0个像元(零宽度)。 解决方案:符合POSIX.1-2001和POSIX.1-2008的系统提供和 C函数,此python模块函数精确复制了这些函数。 这些函数返回一个unicode字符串预期占用的单元数。 该软件包的稳定版本在pypi上维护,请使用pip安装: pip install wcwidth 问题:给出以下短语(日语), >>> text = u 'コンニチハ' Python错误地使用了5个代码点的字符串长度,而不是10个单元格的可打印长度,因此,当使用rju tabulate函数官方文档tabulate直译是制表,让python实现表格化显示tabulate.tabulate(tabular_data, headers=(), tablefmt=u'simple', floatfmt=u'g', numalign=u'decimal', stralign=u'left', missingval=u'')tabular_data:需要显示的内容。hea... wcwidth.js:C语言的wcwidth()的javascript移植 wcwidth.js是在C中实现的wcwidth()的简单javascript移植。 及其字符串版本由IEEE Std 1002.1-2001(aka POSIX.1-2001 定义,并返回用于表示固定宽度输出设备(如终端)上的宽字符和字符串的列数。 Markus的实现假定要使用编码宽字符,这对于JavaScript几乎是正确的; 几乎是因为JavaScript使用并且代理对存在问题。 wcwidth.js将代理对转换为Unicode代码点以正确处理它们。 遵循原始实现,此库按以下方式定义ISO 10646字符的列宽: 空字符( U+0000 )的列宽度为opts.null (其默认值为0); 其他和DEL将导致opts.control的列宽(其默认值为0); Unicode数据库中的非空格和封闭组合字符 从输出结果可以看出,整数1出现了3次,占总数的23.08%;它可以帮助我们快速了解数据集的分布情况,对于数据的分析和可视化提供了有力的支持。可以看到,字符’a’出现了3次,占总数的23.08%;从输出结果可以看出,随机生成的数值在1到10之间,各个数值的出现次数和百分比都有所不同。在MATLAB中,有许多强大的函数可以用于数据分析和统计。函数可以帮助我们对数据进行统计分析,并生成易于理解的结果。是一个向量或者一个一维的数值数组,表示待统计的数据。函数也可以用于统计随机生成的数值向量的频次。 #实现中文字符对齐的方法 def aligns(string,length=20): difference = length - len(string) # 计算限定长度为20时需要补齐多少个空格 if difference == 0: # 若差值为0则不需要补 return string elif difference & 介绍:tabulate能够对二维数据进行表格输出,可以把列表进行表格格式化,对里面的参数进行调用 tabulate.tabulate(tabular_data, headers=(), tablefmt=u’simple’, floatfmt=u’g’, numalign=u’decimal’, stralign=u’left’, missingval=u’’) #主要参数介绍: abular_...   如图所示,Stata大致可以分为五个部分。   最上面是菜单栏,或者成为工具栏,功能栏,包括file,Edit,Data,Graphics,Statistics,User,Window,Help八个主要菜单,其中每个菜单下又 首先,阿里云也有一款名为DataHub的产品,是一个流式处理平台,本文所述DataHub与其无关。数据治理是大佬们最近谈的一个火热的话题。不管国家层面,还是企业层面现在对这个问题是越来越重视。数据治理要解决数据质量,数据管理,数据资产,数据安全等等。而数据治理的关键就在于元数据管理,我们要知道数据的来龙去脉,才能对数据进行全方位的管理,监控,洞察。DataHub是由LinkedIn的数据团队开源的一款提供元数据搜索与发现的工具。