[Python] 文字列を0埋め(0パディング)する方法を解説

Pythonで文字列を0埋めする方法は、主にzfill()メソッドを使用します。

このメソッドは、指定した長さになるまで文字列の左側にゼロを追加します。

例えば、'42'.zfill(5)'00042'を返します。

また、str.format()メソッドやf-stringを用いても0埋めが可能です。

これらの方法を使うことで、数値や文字列を一定の桁数に揃えることができます。

特に、数値を整形して表示する際に便利です。

この記事でわかること
  • zfill()、format()、f文字列、rjust()を使った0埋めの方法
  • 整数や浮動小数点数の日付、時間の0埋めの実例
  • ファイル名の0埋めを利用した一括処理や自動生成の方法
  • 0埋めの桁数を動的に変更するテクニック
  • 0埋めを解除する方法とその注意点

目次から探す

文字列の0埋め(0パディング)とは

0埋め(0パディング)とは、文字列の先頭に0を追加して、指定した桁数に揃える処理です。

主に数値を一定の桁数で表示したい場合や、データの整形に利用されます。

例えば、IDや日付、時間などのフォーマットを統一する際に役立ちます。

メリットとしては、データの視認性が向上し、整然とした表示が可能になる点がありますが、デメリットとしては、数値としての計算が必要な場合に不便になることがあります。

Pythonでの0埋め方法

zfill()メソッドを使う

zfill()の基本的な使い方

zfill()メソッドは、文字列の先頭に0を追加して、指定した桁数に揃えるためのメソッドです。

引数には、最終的な文字列の長さを指定します。

zfill()の具体例

number = "42"
padded_number = number.zfill(5)
print(padded_number)
00042

format()メソッドを使う

format()の基本的な使い方

format()メソッドを使用すると、文字列のフォーマットを指定して0埋めを行うことができます。

{:0n}の形式で、nは桁数を指定します。

format()の具体例

number = 42
padded_number = "{:05}".format(number)
print(padded_number)
00042

f文字列を使う

f文字列の基本的な使い方

Python 3.6以降では、f文字列を使って簡潔に0埋めを行うことができます。

f"{value:0n}"の形式で、nは桁数を指定します。

f文字列の具体例

number = 42
padded_number = f"{number:05}"
print(padded_number)
00042

rjust()メソッドを使う

rjust()の基本的な使い方

rjust()メソッドは、指定した幅に合わせて文字列を右寄せし、足りない部分を指定した文字(デフォルトはスペース)で埋めます。

0埋めを行うには、引数に’0’を指定します。

rjust()の具体例

number = "42"
padded_number = number.rjust(5, '0')
print(padded_number)
00042

応用例

数値の0埋め

整数の0埋め

整数を0埋めすることで、データの整形や表示を統一できます。

例えば、IDやシリアル番号などでよく使用されます。

id_number = 7
padded_id = f"{id_number:03}"
print(padded_id)
007

浮動小数点数の0埋め

浮動小数点数の0埋めも可能で、特に金額や測定値の表示に役立ちます。

小数点以下の桁数を指定することもできます。

value = 3.5
padded_value = f"{value:06.2f}"
print(padded_value)
03.50

日付の0埋め

日付フォーマットの0埋め

日付を0埋めすることで、フォーマットを統一し、視認性を向上させます。

特に、年、月、日を2桁で表示する際に便利です。

from datetime import datetime
date = datetime(2023, 5, 9)
formatted_date = f"{date.year:04}-{date.month:02}-{date.day:02}"
print(formatted_date)
2023-05-09

時間フォーマットの0埋め

時間の表示でも0埋めが役立ちます。

特に、時、分、秒を2桁で表示することで、整然とした表示が可能です。

time = datetime.now()
formatted_time = f"{time.hour:02}:{time.minute:02}:{time.second:02}"
print(formatted_time)
14:05:09

ファイル名の0埋め

ファイル名の一括処理

ファイル名に0埋めを適用することで、ファイルの整理や管理が容易になります。

例えば、連番のファイル名を生成する際に使用します。

for i in range(1, 6):
    filename = f"file_{i:03}.txt"
    print(filename)
file_001.txt
file_002.txt
file_003.txt
file_004.txt
file_005.txt

ファイル名の自動生成

特定の条件に基づいてファイル名を自動生成する際にも0埋めが役立ちます。

例えば、日付や時刻を含むファイル名を生成することができます。

from datetime import datetime
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"backup_{timestamp}.zip"
print(filename)
backup_20231005_140509.zip

よくある質問

zfill()と他の方法の違いは?

zfill()メソッドは、文字列の先頭に0を追加する専用のメソッドで、数値を文字列として扱う際に便利です。

他の方法format()やf文字列、rjust()は、より柔軟にフォーマットを指定できるため、特定の条件に応じて使い分けることが重要です。

例えば、format()やf文字列では、数値の桁数や小数点以下の桁数を同時に指定できます。

0埋めの桁数を動的に変更する方法は?

0埋めの桁数を動的に変更するには、変数を使用して桁数を指定します。

例えば、f"{value:0{width}}"のように、widthに任意の桁数を代入することで、動的に0埋めの桁数を変更できます。

0埋めを解除する方法は?

0埋めを解除するには、lstrip('0')メソッドを使用して、先頭の0を削除します。

ただし、全ての0を削除するため、数値として扱う場合は注意が必要です。

例えば、"00042".lstrip('0')"42"を返します。

まとめ

この記事では、Pythonにおける文字列の0埋め(0パディング)の方法を解説しました。

zfill()format()、f文字列、rjust()など、さまざまな方法を使って0埋めを行うことができ、特に数値や日付、ファイル名の整形に役立ちます。

ぜひ、これらのテクニックを活用して、データの整形や表示をより効果的に行ってみてください。

  • URLをコピーしました!
目次から探す