QQ个性网:专注于分享免费的QQ个性内容

关于我们| 网站公告| 广告服务| 联系我们| 网站地图

搜索
编程 JavaScript Java C++ Python SQL C Io ML COBOL Racket APL OCaml ABC Sed Bash Visual Basic Modula-2 Logo Delphi IDL Groovy Julia REXX Chapel X10 Forth Eiffel C# Go Rust PHP Swift Kotlin R Dart Perl Ruby TypeScript MATLAB Shell Lua Scala Objective-C F# Haskell Elixir Lisp Prolog Ada Fortran Erlang Scheme Smalltalk ABAP D ActionScript Tcl AWK IDL J PostScript IDL PL/SQL PowerShell

调整ASCII格式表格样式,做一个超漂亮的字符表格,Python来搞定

日期:2025/04/02 13:27来源:未知 人气:53

导读:上一篇内容我们详细了解了PrettyTable库的基本用法(详见带你设计一个超实用的ASCII格式表格,Python的PrettyTable库详解)。前情回顾今天和大家一起来了解下PrettyTable的其他相关内容(表格对齐方式、样式设置、多种显示方式)。开始吧!首先,我们来详细了解下表格内容对齐方式。01字符表对齐方式从前面的几个例子我们知道,表格内容默认是居中排列的。如何......

上一篇内容我们详细了解了PrettyTable库的基本用法(详见带你设计一个超实用的ASCII格式表格,Python的PrettyTable库详解)。

前情回顾

今天和大家一起来了解下PrettyTable的其他相关内容(表格对齐方式、样式设置、多种显示方式)。

开始吧!

首先,我们来详细了解下表格内容对齐方式。

01字符表对齐方式

从前面的几个例子我们知道,表格内容默认是居中排列的。

如何排队

可以通过align属性设置表格内容的对齐方式,下面举例来直观看一下。

【第一步】创建一个表格,并在里面添加表头和相应的数据

from prettytable import PrettyTable

pt = PrettyTable()

pt.field_names = ['工号', '姓名', '职位', '工资', '加班费', '迟到扣款', '应发工资']

pt.add_row(['001','孙悟空','部门经理','12000','5000','1000','16000'])

pt.add_row(['002', '武松', '高级技师', '11000', '3000', '500', '13500'])

pt.add_row(['003', '唐僧', 'CTO', '22000', '5000', '500', '26500'])

pt.add_row(['004', '宋江', '部门头目', '12000', '5000', '500', '16500'])

print(pt)

代码及运行效果如下:

运行效果

【第二步】设置单行对齐方式

对齐方式可选项:l靠左对齐,c居中对齐,r靠右对齐。

如何让它们对齐

我们使用将工号栏靠左对齐,工资栏靠右对齐设置,代码如下:

pt.align['工号'] = 'l'

pt.align['工资'] = 'r'

pt.align['加班费'] = 'r'

pt.align['迟到扣款'] = 'r'

pt.align['应发工资'] = 'r'

效果如下所示

对齐设置后效果

【第三步】一次设置所有列对齐方式

某一天,我发现表格居右对齐好看。调整如下。

pt.align = 'r'

看下效果

一次设置全部列对齐方式

好了,列的对齐方式我们已经掌握了。下面我们进入正题。

02字符表样式设置

PrettyTable有许多样式选项,可以控制表格显示方式的各个方面。可以自由地将这些选项中的每一个单独设置为您喜欢的任何内容。set_style()方法会自动为您执行此操作。

设定表格样式也很有意思

set_style()方法有几种默认样式:

DEFAULT、MSWORD_FRIENDLY、PLAIN_COLUMNS、RANDOM

大家比对一下,用法及效果如下图(使用前需导入哦,如果你不知道怎么导入,写上from prettytable import 即可,这里用上面几个样式常量代替):

各种样式比对(感觉还是默认好看)

set_style()方法可选项如下:

border:一个布尔选项(必须是True或False),控制是否在表格周围绘制边框。header:一个布尔选项(必须是True或False),控制表的第一行是否是显示所有字段名称的标题。hrules:控制行后水平线的打印,允许值:FRAME, HEADER, ALL, NONE。请注意,这些是prettytable模块内部定义的变量, 因此请确保导入或使用prettytable.FRAME等。vrules:控制列之间垂直规则的打印。允许值: FRAME、ALL、NONE。int_format:控制整数数据打印方式的字符串。这就像:print("%d" % data)float_format:控制浮点数据打印方式的字符串。这就像:print("%f" % data)padding_width:列数据两侧的空格数(仅在左右填充为时使用None)。left_padding_width:列数据左侧的空格数。right_padding_width:列数据右侧的空格数。vertical_char:用于绘制垂直线的单个字符串。默认为'|'。horizontal_char:用于绘制水平线的单个字符串。默认为'-'。junction_char:用于绘制线连接点的单字符串。默认为'+'。样式怎么用?

pt.set_style(vertical_char = '+')

怎么样?简单吧!

so easy!

另外,需要说明的是,如果想一直使用这些样式,直接在定义PrettyTable时就将样式属性设定好,如果只是临时使用,则在PrettyTable实例的get_string()方法中设定相应的参数即可。

演示代码如下(对比两种设置):

两种设置方式对比

你选择哪种?视具体情况而定。

下面,通过一个案例来展示下其用法。我们改变默认样式中的垂直、水平及连接字符看下效果。

表格初始化略去

pt.vertical_char = '$'

pt.horizontal_char = '~'

pt.junction_char = '*'

改变样式

其他内容大家自己探索吧!

03表格的多种显示方式

此外,还可以将prettytable实例以html表格代码格式打印出来。

print(pt.get_html_string())

格式化为html

同样,如果你想在html表格中应用CSS样式或者标签其他属性,使用代码可以添加,方法如下:

print(pt.get_html_string(attributes={"name":"my_table","class":"blue_table", }))

当然,命令行下这些CSS属性是没法展示的!

好了,今天的内容就到这里了,我们对prettytable这个库应该不会陌生了吧,看了这么多内容,如何好好消化?离不开我们的项目,下一篇内容我们利用一个小小的案例来强化对prettytable的认识。至于什么项目,暂且保密^-^

值得期待!

喜欢Python编程的小伙伴关注我,后续会有更多有意思的实战内容哦!

关于我们|网站公告|广告服务|联系我们| 网站地图

Copyright © 2002-2023 某某QQ个性网 版权所有 | 备案号:粤ICP备xxxxxxxx号

声明: 本站非腾讯QQ官方网站 所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告