如何在表格中正确显示汉字

时间:2019-08-23 02:53:58

标签: python-3.x tabulate

我使用列表显示一些带有汉字的数据。但是输出没有组织。

from tabulate import tabulate
data = [ ["北京理工大学", "985", 2000],
         ["清华大学", "985", 3000],
         ["大连理工大学", "985", 4000],
         ["深圳大学", "211", 2000],
         ["沈阳大学", "省本", 2000],
    ]
print(tabulate(data, tablefmt="grid"))

enter image description here

2 个答案:

答案 0 :(得分:0)

我尝试了CJK env的漂亮,列表...模块。它们在ASCII输出中具有CJK字体问题的对齐方式。 但是,一种方法可以避免使用 html输出格式的CJK字体对齐问题。

示例代码:

import prettytable as pt

tb1=pt.PrettyTable()

tb1.padding_width = 5
tb1.field_names=[" 名稱", " 項目", " 數量", "單價", "總價"]
tb1.align[" 名稱"]="c"
tb1.align["項目"]="l"
tb1.align["數量"]="r"
tb1.align["單價"]="r"
tb1.align["總價"]="r"

for task in list1:
    tb1.add_row(task)
    
print(tb1.get_html_string())         #改寫成HTML 格式輸出, 避開中文對齊問題

enter image description here

答案 1 :(得分:0)

安装 wcwidth 软件包可能会解决您的问题。似乎 tabulate 使用 wcwidth 来处理 unicode 字符串。

$ pip install wcwidth