用 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),
    ))
中英文混排对齐效果

你可能感兴趣的:(用 Python 对齐输出中英文混合文本)