ファイル名に「1」「2」「10」…と番号を付けたら、並び順がぐちゃっと崩れて困ったことはありませんか?
私自身、最初は「まあ仕方ないか」「後で探せばいいか」と流していました。
でも、Pythonで たった1行 書いただけで、フォルダの中が 一瞬で整列した ときは、正直ちょっと感動しました。
この記事では、プログラミングが得意でなくても使える「桁数を揃えた連番」の作り方を、必要なところだけに絞って紹介します。
なぜ桁数を揃えた連番が必要なのか
ファイル名に連番を付けるとき、何も考えずに 1,2,3,・・・10と付けてしまうと、フォルダでは次のように並びます。
file_1.txt
file_10.txt
file_2.txt
file_3.txt数字としては正しくても、文字列として並ぶ ため、順番が崩れて見えてしまうのです。
一方で、桁数を揃えてこうするとどうでしょう。
file_001.txt
file_002.txt
file_003.txt
file_010.txt一覧表示でもきれいに整列し、「探す」「確認する」「間違えない」が一気に楽になります。
この “ちょっとした整い” が、日々の作業ストレスを確実に減らしてくれます。
Pythonで連番を生成する基本

まずは、Pythonで連番を作る一番シンプルな方法です。
for i in range(1, 11):
print(i)これで 1 から 10までの数字が順番に表示されます。
ただし、このままでは桁数は揃っていません。
そこで次に、桁数を揃える方法 を見ていきます。
桁数を揃えた連番を生成する方法
まずはこれだけ覚えればOK: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ポイントはこの2つだけです。
- 数字を
str()で文字列に変換する zfill(3)で「3桁になるまで左をゼロで埋める」
「桁数を揃えたい」だけなら、これで十分 です。
余裕が出てきたら:format / f文字列
もう少し慣れてきたら、format() や f文字列という書き方も使えます。
for i in range(1, 11):
print("{:03}".format(i))
または、
for i in range(1, 11):
print(f"{i:03}")
どれも結果は同じです。
- シンプルに書きたい →
zfill() - 表示形式を細かく制御したい →
format()/ f文字列
という使い分けで問題ありません。
ファイル名に連番を付ける実践例

実務で一番よく使うのが、ファイル名に連番を付けるケース です。
base_filename = "file"
for i in range(1, 11):
filename = "{}_{:03}.txt".format(base_filename, i)
print(filename)実行結果はこちら。
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画像保存、CSV出力、ログファイル作成など、「あとから並べて見たいファイル」 では特に効果を発揮します。
まとめ|小さな工夫で、作業は驚くほど楽になる
桁数を揃えるなんて、最初は本当に小さな工夫です。
でも、バラバラに並んでいたファイルが一瞬で整列する のを見ると、「Pythonって、こういうところが楽なんだな」と実感できました。
全部を覚える必要はありません。
今日使えそうな 1行だけ、そっと手元に置いておけば十分です。
こうした 小さく楽になる体験 を、少しずつ増やしていけるのがPythonの良さだと思います。
(補足)この記事で紹介したコードまとめ
# zfill を使った連番
for i in range(1, 11):
print(str(i).zfill(3))
# ファイル名に連番を付ける例
base_filename = "file"
for i in range(1, 11):
filename = "{}_{:03}.txt".format(base_filename, i)
print(filename)
