kentaPtの日記

主に画像解析のことなどの勉強記録として投稿します。もし何かございましたら、github (https://github.com/KentaItakura)などからご連絡いただけると幸いです。

文字列・数値に対してゼロ埋めをし、000123.jpgのような文字列を作成する(ゼロパディング)

数字の表記を、1234ではなく、001234のように特定の数字などで埋めたい場合があると思います。この記事では、MATLABpythonにおけるコードについて自分用のメモとして残したいと思います。例えば、

  • 123, 18, 1931...のように桁数の違う数字を含むファイル名において、00123.jpg, 00018.jpg, 01931.jpgのようにすると統一性が出る
  • file1.txt, file2.txt, file10.txtを並び替えると、file1.txt, file10.txt, file2.txtという順番になる場合がある。ファイル名からゼロで埋めると数字の大きさ(小ささ)の順に並び変えられる。

といった場合に有効であると考えられます。

MATLABの場合

sprintf('%07d', 1234)

とすれば、0001234という値(char)が返されます。

jp.mathworks.com

並び替えをうまく行いたい場合は、sort_natを使うこともできます。

jp.mathworks.com

pythonの場合

v = '1234'
v.zfill(7)

のように、zfillを用いるとよいです。vは文字列であることに注意する必要があります。他にも複数方法が存在するようです。以下のページが参考になりました。

note.nkmk.me

今回のメモの原稿や他の記事のコードやデータはこちらにアップロードしています。

github.com