用 Python 对齐输出中英文混合文本

@标签 Python print 终端 打印 table align mixed unicode ascii Chinese 中文

本文演示了如何利用 wcwidth 库来实现中英文混排对齐的效果,请首先确保你安装了 wcwidth

$ pip install wcwidth

解决中文英文混排对齐问题的示例代码以及运行效果如下:

from __future__ import print_function, unicode_literals
from wcwidth import wcswidth as ww

def lpad(s, n, c=' '):
    # lpad('你好', 6) => '  \u4f60\u597d'
    return (n-ww(s)) * c + s

def rpad(s, n, c=' '):
    # rpad('你好', 6) => '\u4f60\u597d  '
    return s + (n-ww(s)) * c

lines = [
    ['aaaaa', 'other-十堰市辉力亚新国际影城-99', 'bbbbb'],
    ['111', 'other-十国际影城-42091401', 'ccc222'],
    ['你好a', 'what', 'yes啊']
]

for l in lines:
    print('{} {} {}'.format(
        rpad(l[0], 12),
        rpad(l[1], 40),
        rpad(l[2], 10),
    ))
中英文混排对齐效果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容