全角文字を揃える

2016.12.12

stringを半角size文字分のみ返す.足りないときは半角スペースで埋める. 半角size文字にぴったり切れないときは最後の文字を半角スペースとする.

anime

import unicodedata
def jastr(string, size):
    ret = ""
    s = 0
    for ch in string:
        if s + 1 == size:
            ret += " "
            return ret
        elif s + 0 >= size:
            ret+=""
            return ret
        name = unicodedata.name(ch)
        if "CJK UNIFIED" in name \
            or "HIRAGANA" in name \
            or "KATAKANA" in name \
            or "FULLWIDTH" in name \
            or "IDEOGRAPHIC" in name \
            or "ANGLE BRACKET" in name \
            or "WAVE DASH" in name \
            or "CORNER" in name:
            s += 2
            ret += ch
        else:
            s += 1
            ret += ch

    ret += " " * (size - s)
    return ret
In [2]: jastr("長いチャンネル",12)
Out[2]: '長いチャンネ'
In [3]: jastr("A長いチャンネル",12)
Out[3]: 'A長いチャン '

新しい記事: Leap indicator 2016.12.31
古い記事: CLIでのアニメ番組表の表示 2016.12.09