产业气象站:5个案例让Python输出漂亮的表格!( 二 )


运行结果如下:
+-------+--------+------------+|index|项目|值|+-------+--------+------------+|1|编号|1||2|云编号|server01||3|名称|服务器01||4|IP地址|172.16.0.1|+-------+--------+------------+
以上示例中 , 我们通过add_column来按列添加数据 , 按列添加数据不需要在实例化表格的时候制定表头 , 它的表头是在添加列的时候指定的 。
table.add_column("项目",["编号","云编号","名称","IP地址"])这一行代码为例 , 项目指定了这个列的表头名为"项目" , ["编号","云编号","名称","IP地址"]为列的值 , 同样为列表 。
C、从csv文件添加数据
PrettyTable不仅提供了手动按行按列添加数据 , 也支持直接从csv文件中读取数据 。
#!/usr/bin/python#**coding:utf-8**importsysfromprettytableimportPrettyTablefromprettytableimportfrom_csvreload(sys)sys.setdefaultencoding("utf8")table=PrettyTable()fp=open("res.csv","r")table=from_csv(fp)print(table)fp.close()
如果要读取cvs文件数据 , 必须要先导入from_csv , 否则无法运行 。 上面的示例运行结果如下:
+------+----------+----------+------------+|编号|云编号|名称|IP地址|+------+----------+----------+------------+|1|server01|服务器01|172.16.0.1||2|server02|服务器02|172.16.0.2||3|server03|服务器03|172.16.0.3||4|server04|服务器04|172.16.0.4||5|server05|服务器05|172.16.0.5||6|server06|服务器06|172.16.0.6||7|server07|服务器07|172.16.0.7||8|server08|服务器08|172.16.0.8||9|server09|服务器09|172.16.0.9|+------+----------+----------+------------+
csv文件不能通过xls直接重命名得到 , 会报错 。 如果是xls文件 , 请用另存为csv获得csv文件D、从sql查询值添加从数据库查询出来的数据可以直接导入到表格打印 , 下面的例子使用了sqlite3,如果使用的是mysql也是一样的 , 只要能查询到数据就能导入到表格中
#!/usr/bin/python#**coding:utf-8**importsysfromprettytableimportPrettyTablefromprettytableimportfrom_db_cursorimportsqlite3reload(sys)sys.setdefaultencoding("utf8")conn=sqlite3.connect("/tmp/aliyun.db")cur=conn.cursor()cur.execute("SELECT*FROMres")table=from_db_cursor(cur)print(table)
运行结果如下:
+------+----------+----------+------------+|编号|云编号|名称|IP地址|+------+----------+----------+------------+|1|server01|服务器01|172.16.0.1||2|server02|服务器02|172.16.0.2||3|server03|服务器03|172.16.0.3||4|server04|服务器04|172.16.0.4||5|server05|服务器05|172.16.0.5||6|server06|服务器06|172.16.0.6||7|server07|服务器07|172.16.0.7||8|server08|服务器08|172.16.0.8||9|server09|服务器09|172.16.0.9|+------+----------+----------+------------+E、从HTML导入数据
支持从html的表格中导入 , 请看下面这个例子:
#!/usr/bin/python#**coding:utf-8**importsysfromprettytableimportPrettyTablefromprettytableimportfrom_htmlreload(sys)sys.setdefaultencoding("utf8")html_string="""编号云编号名称IP地址1server01服务器01172.16.0.12server02服务器02172.16.0.2"""table=from_html(html_string)print(table[0])
运行结果如下:
+------+----------+----------+------------+|编号|云编号|名称|IP地址|+------+----------+----------+------------+|1|server01|服务器01|172.16.0.1||2|server02|服务器02|172.16.0.2|+------+----------+----------+------------+
如上示例中 , 我们可以导入html的表格 , 但是不一样的地方是print语句 , 使用html表格导入数据的时候print的必须是列表中的第一个元素 , 否则有可能会报[]这样的错误 。