読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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

python

書式指定ミニ言語は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