PrettyTable设置vrules和hrules为NONE不生效问题咨询
问题原因分析
- 你对
hrules、vrules属性的修改都是作用在临时新建的PrettyTable()实例上,这部分临时实例修改完就被销毁了,完全没有作用到你实际使用的myTable实例上,所以配置不生效。 - 额外报错隐患:代码中调用了
operator.itemgetter但没有导入operator模块,直接运行会触发NameError。
修复后的可用代码
from prettytable import PrettyTable, FRAME, HEADER, NONE import operator # 初始化自己要用的表格实例 myTable = PrettyTable(["Student Name", "Class", "Section", "Percentage"]) myTable.title = 'Big Bang Theory' # 直接修改当前实例的横竖线规则 myTable.hrules = NONE myTable.vrules = NONE # 添加行数据 myTable.add_row(["Leanord", "X", "B", "91.2 %"]) myTable.add_row(["Penny", "X", "C", "63.5 %"]) myTable.add_row(["Howard", "X", "A", "90.23 %"]) myTable.add_row(["Bernadette", "X", "D", "92.7 %"]) myTable.add_row(["Sheldon", "X", "A", "98.2 %"]) myTable.add_row(["Raj", "X", "B", "88.1 %"]) myTable.add_row(["Amy", "X", "B", "95.0 %"]) print(myTable.get_string(sort_key=operator.itemgetter(1, 3), sortby="Section"))
输出效果
Big Bang Theory Student Name Class Section Percentage Amy X B 95.0 % Bernadette X D 92.7 % Howard X A 90.23 % Leanord X B 91.2 % Penny X C 63.5 % Raj X B 88.1 % Sheldon X A 98.2 %
如果想要连外层的边框也一起去掉,可以额外加一行配置myTable.border = False。
内容的提问来源于stack exchange,提问作者Slartibartfast
相关产品推荐
相关产品推荐

