Pythonを使って桁数を揃えた連番を生成する方法について説明します。これは、ファイル名に連番を追加する場合や、整理整頓されたデータセットを作成する際に非常に便利です。初心者でも簡単に理解できるように、ステップバイステップで解説していきますので、ぜひ最後までご覧ください。
なぜ桁数を揃えた連番が必要なのか
桁数を揃えた連番は、日常的な作業からプログラミングまで幅広い場面で活躍します。
たとえば、ファイル名に連番を付けて保存するときに桁数が揃っていないと、「1, 2, 10, 11…」のように順番が崩れてしまい、見たいファイルを探すのが大変になります。
しかし「001, 002, 010, 011…」のようにゼロ埋めして桁数を揃えれば、一覧表示でも整然と並び、一目で把握できます。
また、データベースやプログラムでIDを扱う際にも、桁数を統一することで処理が安定し、予期せぬ不具合を防げます。見やすさと安全性の両面で効果を発揮するのが「桁数を揃えた連番」なのです。
Pythonで連番を生成する基本的な方法

まずは、Pythonで最も基本的な連番の作り方を確認しましょう。Pythonには range() という便利な関数があり、これを使うと簡単に連続した数値を生成できます。
for i in range(1, 11):
print(i)
このコードを実行すると、1から10までの数値が順番に出力されます。range(1, 11) と書くことで、「1から始まり10で終わる整数の並び」を作ることができるのです(終了値の11は含まれない点に注意してください)。
range() はPython学習の初期段階でよく登場する関数で、繰り返し処理と相性が良く、シンプルに連番を作るときには欠かせない存在です。
ただし、この方法で生成される数値は単なる整数なので、桁数が揃っていません。
たとえば「1, 2, 3, …, 10」という並びは一見問題なさそうですが、ファイル名やIDとして利用した場合に「1, 10, 2, 3…」と並んでしまい、順番が崩れて見えてしまうことがあります。
そこで次に紹介する「桁数を揃える工夫」が必要になるわけです。
桁数を揃えた連番を生成する
先ほど紹介した range() を使った方法では、単純に「1, 2, 3…」といった数値が生成されるだけで、桁数は揃っていません。
これを「001, 002, 003…」のように整った形式にするには、文字列のフォーマット機能を利用します。Pythonでは代表的に str.zfill() メソッドと format() メソッドの2つの方法があります。
str.zfill()を使う方法
zfill() は、文字列の左側をゼロで埋めて、指定した桁数に揃えてくれるメソッドです。
for i in range(1, 11):
print(str(i).zfill(3))
このコードは、1から10までの連番を3桁で揃えて出力します。結果は以下の通りです。
001
002
003
004
005
006
007
008
009
010
数字を文字列に変換してから桁数を揃える点がポイントです。
format()を使う方法
もうひとつの方法が format() を使う書き方です。こちらはフォーマット指定子を利用して桁数をコントロールします。
for i in range(1, 11):
print("{:03}".format(i))
こちらも同じように、3桁のゼロ埋めで表示されます。
どちらを選ぶ?
- 短く書きたい →
zfill()
が直感的でわかりやすい - 柔軟にフォーマットしたい →
format()
のほうが拡張性が高い(桁数や数値の整形を自由に変更できる)
Python初心者であれば、まずは zfill()
を覚えておけば十分です。慣れてきたら format()
や f文字列(f"{i:03}"
)も使えるようになると便利です。

ファイル名に連番を追加する
次に、ファイル名に桁数を揃えた連番を追加する方法を見てみましょう。以下のコードでは、format()メソッドを使用してファイル名に連番を追加しています。

base_filename = "file"
for i in range(1, 11):
filename = "{}_{:03}.txt".format(base_filename, i)
print(filename)
このコードは、file_001.txt から file_010.txt までのファイル名を生成します。結果は以下の通りです。
file_001.txt
file_002.txt
file_003.txt
file_004.txt
file_005.txt
file_006.txt
file_007.txt
file_008.txt
file_009.txt
file_010.txt
サンプルコードとその実行結果
ここでは、上述の方法を組み合わせて、実際に連番付きのファイル名を生成する完全なサンプルコードを示します。
サンプルコード
def generate_filenames(base_name, count, digits):
filenames = []
for i in range(1, count + 1):
filename = "{}_{:0{width}}.txt".format(base_name, i, width=digits)
filenames.append(filename)
return filenames
# 実行例
base_name = "file"
file_count = 10
digit_count = 3
file_list = generate_filenames(base_name, file_count, digit_count)
for file in file_list:
print(file)
実行結果
上記のコードを実行すると、以下のような連番付きのファイル名が生成されます。
file_001.txt
file_002.txt
file_003.txt
file_004.txt
file_005.txt
file_006.txt
file_007.txt
file_008.txt
file_009.txt
file_010.txt
まとめ:Pythonを活用し効率的に作業を進められた
この記事では、Pythonで桁数を揃えた連番を生成する方法を紹介しました。実際に使ってみると、ファイル名がきれいに並んだり、データが見やすく整理されたりと、ちょっとした工夫が思った以上に便利だと感じられるはずです。
私自身も最初に試したとき、「バラバラに並んでいたファイルが一瞬で整列した!」という体験に驚きました。小さなテクニックですが、作業の効率や見やすさが大きく変わります。
ぜひみなさんも、自分のプロジェクトで試してみてください。Pythonを活用することで、「あ、こんなに楽になるんだ」という体験がきっと増えていきますよ。
Pythonを活用することで、効率的に作業を進めることができるようになります。
これからも、Pythonの便利な使い方を学び、プログラミングスキルを向上させていきましょう。