Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

書式指定ミニ言語を使ってString魔界に浸ってみる

書式指定ミニ言語はPythonの文字列を整形する言語内言語です。
format関数と合わせて使います。

実際のところ

printf記法みたいな事もできます。

import datetime
d = datetime.datetime(2010, 7, 4, 12, 15, 58)
'{:%Y-%m-%d %H:%M:%S}'.format(d)
# '2010-07-04 12:15:58'

バイナリ数に変換する記法が備わっています。

'{:02X}{:02X}{:02X}{:02X}'.format(*[124,55,6,8])
# '7C370608'

三桁区切りのような、よく使うものに対応した記法も用意されています。

'{:,}'.format(12345678)
# '12,345,678'

正規表現で実現出来る内容もある

最後の内容は正規表現ライブラリを使う事でも実現できます。

import re
re.sub(r'(\d)(?=(\d{3})+(?!\d))', '\\1,', '12345678')
#'12,345,678'

Pythonバイナリ解析芸をやる人にとっては、
fomatの16進数変換機能が使えるかもしれません。
そういった特殊用途でもなければ、極力正規表現を学習したほうが幸せになれそうです。

出来た物をBytes型に変換したい場合はencode関数を使います

shuzo-kino.hateblo.jp