1. 程式人生 > 實用技巧 >Python中英文混排輸出

Python中英文混排輸出

若資料每個欄位只有中文或者英文,可以考慮在內容中填充中文空格以進行對齊,因為中文空格和英文空格寬度不同,如:

# 第一個引數表示變數內容,第二個引數表示字元 以下內容表示居中,若長度不足13用中文空格補齊
'{0:{1}^13}'.format(Name, chr(12288))

若資料出現中文和英文在同一個欄位內,可以使用wcwidth庫計算字元總長度,其中中文字元長度為2,英文和數字長度為1。(也可以採用其他方法計算長度)如:

from wcwidth import wcswidth


def wc_rjust(text, length, padding=' '):
    """
    :param text: 文字內容
    :param length: 填充長度
    :param padding: 填充內容
    :return:
    """
    return text + padding * max(0, (length - wcswidth(text)))


# 新增\t製表符來補充對齊
print(wc_rjust('你好a\t', 0), wc_rjust('aas呵呵d\t', 5), wc_rjust('做一個測試\t', 5),
      wc_rjust('123sad啊\t', 5), wc_rjust('hehe\t', 5))
print(wc_rjust('你好嗎\t', 0), wc_rjust('aasddasd\t', 5), wc_rjust('做一測s試\t', 5),
      wc_rjust('123sad啊\t', 5), wc_rjust('hehe\t', 5))
print(wc_rjust('你好a\t', 0), wc_rjust('aasddasd\t', 5), wc_rjust('做一個測試\t', 5),
      wc_rjust('123sad55\t', 5), wc_rjust('hehe\t', 5))

輸出結果: