Pythonで str.format
を使用して文字列を切り捨てる方法は?それも可能ですか?
Format Specification Mini-Language に記載されているwidth
パラメーターがあります。
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
...
width ::= integer
...
しかし、それを指定することはパディングに対してのみ機能し、切り捨てることはできません。
>>> '{:5}'.format('aaa')
'aaa '
>>> '{:5}'.format('aaabbbccc')
'aaabbbccc'
したがって、実際の幅よりも最小の幅になります。
文字列をスライスできることは知っていますが、ここで処理するデータは、フォーマット文字列や入力する引数など、完全に動的です。
代わりに.precision
を使用します。
>>> '{:5.5}'.format('aaabbbccc')
'aaabb'
Format Specification Mini-Language のドキュメントによると:
precisionは、
'f'
および'F'
でフォーマットされた浮動小数点値の小数点以下、またはその前に表示される桁数を示す10進数です。'g'
または'G'
でフォーマットされた浮動小数点値の小数点以下。 数値以外のタイプの場合、フィールドは最大フィールドサイズを示します-つまり、フィールドコンテンツから使用される文字数です。precisionは整数値には使用できません。