ゼロからの業務効率化ノート

30代未経験から始まったノーコード&Pythonチャレンジ

【ファイル名とかで役立つ】Python初心者必見!数値をゼロ埋めするテクニック


ぬこ将軍です🐈
夏バテなのか色んな勉強で忙しいのか分かりませんが、最近疲れやすくなってる気がします。
それでも少しずつ、ブログ記事の方はコツコツ作っていきたいですね。


ということで今回は「Pythonで数値をゼロ埋めするテクニック」について書こうかと思います。
数値のゼロ埋めというのは「001」「011」みたいに、特定の桁数で数字を現したい時に残りの桁を0で埋める形式のことです。

  • プログラミング言語Pythonを始めたばかりで、どんどん知識を吸収したい!
  • ファイル名で数字を使う際に、桁数を綺麗に揃えたい!

そんな方々の参考になりましたら幸いです。このテクニックを知れば、美しく桁数が揃えられたファイル群を作成できるでしょう!


Pythonで数値のゼロ埋めは出来るのか?

先に結論を書くと、出来ます!そもそも出来なかったら記事が書けないのですが(笑)

数値のゼロ埋めに関して、日々の業務の中で求められたり実現したいと思う場面って結構ありませんか?
例えばフォルダやファイル名の末尾に通し番号を振る必要があったり、自分で通し番号の桁数を揃えたいなと感じることなどです。

そしてコツコツやるには割と面倒なゼロ埋めですが、Pythonで簡単にできます

Pythonで数値のゼロ埋めをするための簡単テクニック

簡単テクニックですが、それは【str.zfill()】メソッドです。strは文字列型の値を指しています。
大抵は文字列型の数値と組み合わせることが多いので、【str(数値).zfill()】と書くことが多いです。

zfill()の引数は数値ですが、これは桁数を指します。上の画像だとzfill(3)となっていますが、これは「出力する値が3桁の文字列型数値で、残りの桁は0で埋める」ということです。
実際に出力されている数値は001,002....005となっています。

Pythonでファイル名末尾の数値をゼロ埋めしてみた

先ほどは桁数を揃えてゼロ埋めされた文字数列の出力をしましたが、今度はファイル名末尾の数値の桁を揃えてゼロ埋めされたファイルを作ってみます。

コードは以下のような感じです(画像だと全体の文字が小さくなるのでこの形式にしました)。

for n in range(5):
 path = r"C:\○○\○○○\Desktop\Python遊び場\作成テキストファイル\test_" + str(n+1).zfill(3) +".txt"

 with open(path,"w") as f:
  f.write("Hello World!")

*パスの最初にrを書いていますが、それが必要な理由は以下の記事に書いています。

Python初心者必読!フォルダとファイルのパス指定の落とし穴と解決法 - ゼロからの業務効率化ノート


最初にpathという変数にファイルパスを代入するのですが、その時に【str(n+1).zfill(3)】と書くことで、「test_001.txt」のようなファイルを作成できます

そして今回は空白のファイルではなんとなくつまらなかったので、Hello World!という文章が書かれたファイルを作ることにしました。
【with open(path,"w") as f:】とすることで、「指定したファイルオブジェクト名fで、指定したpathのファイルを書き込みモードで開く」ということができます。
そして【f.write("Hello World!")】とすることで、「ファイルオブジェクトfの中にHello World!と書き込む」ということをします。

上のようなコードを実行した結果が以下の通りです。

内容が「Hello World!」でファイル名末尾の桁数が3でゼロ埋めされたテキストファイルが5個生成できました。

Pythonで数値のゼロ埋めをするテクニックまとめ

今回のことをまとめると以下の通りです。

  1. str.zfill()メソッドで特定の桁数に合わせてゼロ埋めされた数値が出力できる。
  2. zfill()の引数は桁数。例えばzfill()の引数が3でstrが"1"の場合は001となる。

ファイルやフォルダ名で数値を使う際、桁数を綺麗に揃えたいなと思ったらこのテクニックを活用してみて下さいね!


初心者も良く使うprint関数の小技集

nukoshogun.hatenablog.com


面倒なpdfファイルの結合をPythonで解決!

nukoshogun.hatenablog.com