鱼C论坛

 找回密码
 立即注册
查看: 3365|回复: 3

prettytable中有什么好办法将中文内容对齐

[复制链接]
发表于 2022-1-9 20:11:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
使用prettytable,发现有中文内容时,表格很难对齐,这个怎么办,请指教,谢谢。

  1. import prettytable as pt

  2. x = pt.PrettyTable()
  3. x.field_names=(['书名', '作者', '定价', '库存数量'])
  4. library = [
  5.     {'bookname': '三体', 'author': '刘慈欣', 'price': 25, 'quality': 5},
  6.     {'bookname': '流浪地球', 'author': '刘慈欣', 'price': 30, 'quality': 10},
  7.     {'bookname': '雪中悍刀行', 'author': '风雪戏诸侯', 'price': 38, 'quality': 15},
  8.     {'bookname': '风声鹤唳', 'author': '君不贱', 'price': 40, 'quality': 7},
  9.     {'bookname': '两京十五日', 'author': '马伯庸', 'price': 28, 'quality': 12},
  10.     {'bookname': '余罪', 'author': '常书欣', 'price': 70, 'quality': 33},
  11.     {'bookname': '长安十二时辰', 'author': '马伯庸', 'price': 28, 'quality': 10}
  12. ]

  13. for book in library:
  14.     x.add_row(book.values())

  15. print(x)
  16. +--------------+------------+------+----------+
  17. |     书名     |    作者    | 定价 | 库存数量 |
  18. +--------------+------------+------+----------+
  19. |     三体     |   刘慈欣   |  25  |    5     |
  20. |   流浪地球   |   刘慈欣   |  30  |    10    |
  21. |  雪中悍刀行  | 风雪戏诸侯 |  38  |    15    |
  22. |   风声鹤唳   |   君不贱   |  40  |    7     |
  23. |  两京十五日  |   马伯庸   |  28  |    12    |
  24. |     余罪     |   常书欣   |  70  |    33    |
  25. | 长安十二时辰 |   马伯庸   |  28  |    10    |
  26. +--------------+------------+------+----------+

  27. Process finished with exit code 0
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-1-9 21:18:48 | 显示全部楼层
中文输出很难对齐的,可以自己写方法,没有很难,不用另外下载模组:
  1. names = ['书名', '作者', '定价', '库存数量']
  2. library = [
  3.     {'bookname': '三体', 'author': '刘慈欣', 'price': 25, 'quality': 5},
  4.     {'bookname': '流浪地球', 'author': '刘慈欣', 'price': 30, 'quality': 10},
  5.     {'bookname': '雪中悍刀行', 'author': '风雪戏诸侯', 'price': 38, 'quality': 15},
  6.     {'bookname': '风声鹤唳', 'author': '君不贱', 'price': 40, 'quality': 7},
  7.     {'bookname': '两京十五日', 'author': '马伯庸', 'price': 28, 'quality': 12},
  8.     {'bookname': '余罪', 'author': '常书欣', 'price': 70, 'quality': 33},
  9.     {'bookname': '长安十二时辰', 'author': '马伯庸', 'price': 28, 'quality': 10}
  10. ]

  11. a, b, c, d = names
  12. print("+----------------+------------+------+----------+")
  13. print(f"| {a:^12} | {b:^8} | {c:^2} | {d:^4} |")
  14. print("+----------------+------------+------+----------+")
  15. for book in library:
  16.     a, b, c, d = book.keys()
  17.     print(f"| {book[a]:^{14 - len(book[a])}} | {book[b]:^{10 - len(book[b])}} | {book[c]:^4} | {book[d]:^8} |")
  18. print("+----------------+------------+------+----------+")
复制代码
  1. +----------------+------------+------+----------+
  2. |      书名      |    作者    | 定价 | 库存数量 |
  3. +----------------+------------+------+----------+
  4. |      三体      |   刘慈欣   |  25  |    5     |
  5. |    流浪地球    |   刘慈欣   |  30  |    10    |
  6. |   雪中悍刀行   | 风雪戏诸侯 |  38  |    15    |
  7. |    风声鹤唳    |   君不贱   |  40  |    7     |
  8. |   两京十五日   |   马伯庸   |  28  |    12    |
  9. |      余罪      |   常书欣   |  70  |    33    |
  10. |  长安十二时辰  |   马伯庸   |  28  |    10    |
  11. +----------------+------------+------+----------+
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-9 21:48:40 From FishC Mobile | 显示全部楼层
本帖最后由 hrpzcf 于 2022-1-9 21:57 编辑

换个控制台运行,在pycharm上中文对齐不好,在cmd或者powershell中中文对齐比较好,windows terminal也不错。
如果一定要在编辑器里运行,vscode的集成终端也不错。

vscode集成终端:
屏幕截图 2022-01-09 215528.png



Windows Terminal:
屏幕截图 2022-01-09 215623.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-12 11:01:29 | 显示全部楼层
hrpzcf 发表于 2022-1-9 21:48
换个控制台运行,在pycharm上中文对齐不好,在cmd或者powershell中中文对齐比较好,windows terminal也不错 ...

谢谢。看来还是开发环境的问题,不纠结了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-30 14:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表