LoginSignup
1
0

pathlibを使って、ファイル名変換プログラムを作ってみた!

Posted at

 久しぶりのQuiita投稿です。今回はpathlibを使い、ファイル名変換プログラムを作ってみました。

 参考にしたテキストは、この書籍です。
https://www.amazon.co.jp/Python%E3%81%A7%E3%83%81%E3%83%A3%E3%83%AC%E3%83%B3%E3%82%B8%E3%81%99%E3%82%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80-%E2%80%95%E2%80%95%E3%82%82%E3%81%86%E6%8C%AB%E6%8A%98%E3%81%97%E3%81%AA%E3%81%84%EF%BC%8110%E3%81%AE%E5%A3%81%E3%82%92%E8%B6%8A%E3%81%88%E3%81%A6%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E3%81%AB%E3%81%AA%E3%82%8D%E3%81%86-%E7%9F%B3%E4%B8%8A-%E6%99%8B/dp/4297132923/ref=sr_1_27?crid=V74KHVN3WZW3&keywords=python+%E5%85%A5%E9%96%80&qid=1686095523&sprefix=python%2Caps%2C208&sr=8-27

 上記リンクの5章に載っていたプログラムを学習し成果をこちらに投稿いたします。目的としては、下図、"無題1〜10" のテキストファイルを変更したいファイル名に変換することです。一つ一つファイル名を変更していくと膨大な手間がかかりますので、プログラムによる自動化をします。

image.png

では、サンプルプログラムを展開します。とても簡単です。

from pathlib import Path

for i in range(1,11):                        ///1から10までの繰り返し処理
    rename_from = "無題" + str(i) + ".png"   ///変更したいファイル名を指定
    rename_to = "cat-" + str(i) + ".png"     ///変更後のファイル名を記述
    print(rename_from + "" + rename_to + "に変更します")   ///コマンドに出力
    path = Path(rename_from)                 ///変更前のファイルパスを読み取る
    path.rename(rename_to)                   ///任意のファイル名に変更する

コードそのものは上記のように、8行程度で済みます。今回はコマンドから実行し、ファイル名変更の実行結果をコマンドにも表示させるという非常にシンプルな構成となっております。

 それでは、実行してみます。今回はWindows PowerShellからの実行となります。
image.png
実行結果は以下の通り
image.png
コマンド上には"無題1〜10"のファイルが"cat-1〜10"に変更されていると表示されています。では実際に変更されたか否かをフォルダを開いてみてみましょう。
image.png
ご覧のように、"cat-1〜10"に変更されているのがわかりますね。ファイル名変換プログラムは成功しました。

 私としても、まだまだ勉強中ですので至らない点が多々あるとは思いますが。そこら辺はご容赦ください。こういったファイル変換プログラムは日々の業務でも活かせるプログラムですので、今回投稿させていただきました。次回はエントリーボックスに入力した値をそのままファイル名に変換するプログラムを勉強して作成してみたいと考えています。こういったコードを数多く知り、日々の業務を楽にしていきたいと思います。

エンジニアファーストの会社株式会社CRE-CO H.M

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0