打印终端文本表
项目描述
介绍
这个包提供了 BeautifulTable 类,用于以视觉上吸引人的格式轻松地将表格数据打印到终端。
包括但不限于以下功能:
完全定制桌子的外观和感觉
根据需要构建表格,通过添加行或按列,甚至混合这两种方法。
完全支持使用 ANSI 序列或您选择的任何库的颜色。它只是工作。
大量用于多个用例的预定义样式和创建自定义样式的选项。
支持Unicode字符。
当数据检索缓慢时支持流式表。
链接
用法
这是一个如何使用 beautifultable 的示例:
>>> from beautifultable import BeautifulTable >>> table = BeautifulTable() >>> table.rows.append(["Jacob", 1, "boy"]) >>> table.rows.append(["Isabella", 1, "girl"]) >>> table.rows.append(["Ethan", 2, "boy"]) >>> table.rows.append(["Sophia", 2, "girl"]) >>> table.rows.append(["Michael", 3, "boy"]) >>> table.rows.header = ["S1", "S2", "S3", "S4", "S5"] >>> table.columns.header = ["name", "rank", "gender"] >>> print(table) +----+----------+------+--------+ | | name | rank | gender | +----+----------+------+--------+ | S1 | Jacob | 1 | boy | +----+----------+------+--------+ | S2 | Isabella | 1 | girl | +----+----------+------+--------+ | S3 | Ethan | 2 | boy | +----+----------+------+--------+ | S4 | Sophia | 2 | girl | +----+----------+------+--------+ | S5 | Michael | 3 | boy | +----+----------+------+--------+
您可以在本教程中了解有关 beautifultable 的更多信息
安装
python3 -m pip install beautifultable
变更日志
发展
v1.1.0
放弃对 Python 3.4、3.5 和 3.6 的支持
添加对 python 3.9 和 3.10 的官方支持
在行对象上添加了 asdict和aslist方法。(感谢@Agent-Hellboy)
添加了 from_csv和to_csv方法来导出/导入 csv 文件。(感谢@Agent-Hellboy)
添加了 from_df和to_df方法来导出/导入数据框。(感谢@Agent-Hellboy)
v1.0.1
修复了将带有标题的列附加到空表会使表实例处于不一致状态的问题。
v1.0.0
向BeautifulTable类添加了两个新的视图行和列。大多数现有方法已被弃用。{}_row和{}_column形式的方法已移至视图rows.{}和columns.{}``(例如``append_row现在是rows.append)。调用旧的不推荐使用的方法现在会引发FutureWarning。诸如__len__、__iter__等特殊方法也已移至各自的视图中。有关详细信息,请参阅 API 文档和更新教程
现有的样式属性也已被弃用。可以访问一个新的边框属性来控制影响边框的所有样式属性。其余属性可以从其各自的视图中访问。
添加了对行标题的支持。因此,现在可以通过类似于列的键来访问行
添加了两个新方法to_csv和from_csv以直接导出/导入到 csv 文件。(感谢@dinko-pehar)
添加BeautifulTable.rows.filter方法以生成仅包含某些行的新表
向BeautifulTable类添加了一个新的形状属性,该属性返回一个表单元组 (nrow, ncol)
添加了新属性BeautifulTable.columns.header.alignment可用于单独的标题对齐。默认行为是继承BeautifulTable.columns.alignment
更新了BeautifulTable.rows.sort(早期的BeautifulTable.sort)方法,现在也接受任何可调用对象作为键。
更新 BeautifulTable.columns.width 的行为(之前的BeautifulTable.column_widths)。默认情况下,它不再覆盖用户指定的宽度。您可以通过将其设置为“自动”将其重置为默认值
不推荐使用的属性serialno和serialno_header。如果需要,用户现在可以通过使用行标题轻松实现此功能
不推荐使用的方法get_table_width()、copy()和get_string()。
已弃用的构造函数参数和名为sign_mode、numeric_precision、 max_width的类属性并分别重命名为sign、precision和maxwidth
修复了使用祝福模块生成彩色字符串时表格格式错误的问题。
修复了__iter__、__copy__和__deepcopy__的现有实现的问题,现在应该更可靠地工作。
修复了默认填充无法设置为 0 的问题。(感谢@furlongm)
通过确保所有内部对象仅持有对表实例的弱引用,修复了几个内存泄漏问题。
放弃对 Python 2 的支持
v0.8.0
放弃对 Python 3.3 的支持
在数据检索缓慢的情况下,添加了对使用生成器的流表的支持
现在可以使用简化的语法为所有列设置对齐、填充、宽度,例如 table.column_alignments = beautifultable.ALIGN_LEFT
v0.7.0
添加了 4 种新样式,STYLE_BOX、STYLE_BOX_DOUBLED、STYLE_BOX_ROUNDED、 STYLE_GRID。
将STYLE_RESTRUCTURED_TEXT重命名为STYLE_RST
wcwidth现在是一个可选依赖项
更新了计算列宽的算法(更好的列之间的空间划分)
添加了对段落的支持(使用\n字符)
使用 12 个新属性intersect_{top|header|row|bottom}_{left|mid|right}为交叉字符添加了更精细的控制
添加了也接受字节串而不是 unicode 的能力
不推荐使用的属性intersection_char
不推荐使用的方法get_top_border()、get_bottom_border()、get_header_separator()、 get_row_separator()、auto_calculate_width()
修复了使用多字节字符时WEP_ELLIPSIS和WEP_STRIP的问题
修复了column_width太低时表格格式不正确的问题
v0.6.0
添加了对处理多字节字符串的支持
添加了对使用 ANSI 转义序列的彩色字符串的支持
添加了所有字符串必须是 unicode 的约束
修复了有时计算的宽度高于预期的问题
v0.5.3
添加了对使用 ANSI 转义序列处理颜色代码的支持(实验性)
修复了集合 ABC 弃用警告
v0.5.2
添加了新样式STYLE_NONE
修复了有关非字符串浮点数转换不当的问题
v0.5.1
添加了用于切换自动数字转换的detect_numerics布尔值
v0.5.0
添加了新属性serialno_header
不推荐使用名称中拼写错误的“分隔符”的方法。
修复了column_count过高导致表损坏的问题
v0.4.0
添加了预定义样式以便于自定义
为sort()方法添加了反向参数
修复了 3.4 之前 python 版本的enum34依赖关系
v0.3.0
为自动打印序列号添加了属性serialno
修复了与 str 转换相关的sign_mode问题
修复了与 3.3 之前的 python 版本相关的错误
修复了WEP_ELLIPSIS和令牌长度小于 3的异常
修复了空表的打印问题
v0.2.0
添加了 python 2 支持
v0.1.3
修复了小问题
v0.1.2
添加了新属性default_padding
添加了新方法update_row
修复了auto_calculate_width()中的问题
v0.1.1
PyPI 上的初始版本
贡献
如果您有任何建议或错误报告,请创建问题。拉请求总是受欢迎的。
执照
该项目在 MIT 许可证下获得许可 - 有关详细信息,请参阅LICENSE.txt文件。
捐款
爱美桌?考虑支持开发:)