Pyhronファイル名一括変換

【Python活用講座 001】 ファイル名を一括変更する方法

教室に通われている生徒様より
「これからマクロを学習するなら、パイソンを学習したほうがいいでしょうか?」
というご相談を頂きました。

 マクロやVBAにはマクロ、VBAのいいところがあり、一概に「YES」とは言えませんが、将来性を考えたらその様な考え方もありかなと思います。

 最近頂いたリクエストで「フォルダ内のファイル名を一括変換したい」という内容のものがありました。
今回はその時の対応を参考に
「Pythonで実現するファイル名の一括変更」
についてご紹介します。

 今回やりたいのは、下のように同一フォルダ内の複数のファイルの名前を一括で変更。よくあるパターンとして、ファイル名の前に連番を振りたいと思います。例として2桁の連番にしておきます。

ファイル名一括変更イメージ図

では早速、対象folderの 1階層上 のフォルダに「Pythonファイル」を作成して、以下のコードを記述してみてください。

from pathlib import Path 

path = Path('./files') 
for i, file in enumerate(path.glob('*.xlsx')):
    file.rename(path / f'{i+1:02d}_{file.stem}.xlsx') 

 Pythonでディレクトリ(フォルダ)のパスをオブジェクトとして操作するには、pathlibモジュール を使うととても便利です。
 pathlib の glob()メソッドを使うと、「file」というフォルダ内にある、拡張子「.xlsx」のファイルを取得することができます。
 また「stem属性」で、拡張子を除いたファイル名を取得することができます。

 これを「for文」を使って繰り返します。更新する変数には「i」を指定していますよ。
 変更後のファイル名は、for文の「i」を活用して、「i+1:02d」というコードを記述で2桁の連番の0埋めされた値を先頭に指定します。そこにアンダーバーとstem属性の値を追加することで、元のファイル名の頭に連番が付いたファイル名が出来上がることになります。 さらにこのファイル名を「/演算子」をつかってpath変数に連結させ、変更後のファイル名が指定されます。

 コード自体はとても短いですが、難しい要素が詰まっています。

ファイブボックスではオンライン授業、体験授業も行っているので、今回の授業にご興味がありましたら、ぜひお問い合わせください。お問い合わせは こちら から。体験授業のお申込みは こちら から。 

無料体験授業 いつでも受け付けています!

体験授業を受ける子供

スクラッチ、Unityでちょっとしたゲームを作ってみる

HTMLやCSSでWebサイト作成体験

初めてパソコンやタブレットに触れてみる

エクセルやワード、パワーポイントの学習をちょっと体験

まずは1時間程度の無料体験授業を受けて、教室の雰囲気や講師の人柄に触れて頂き、ご自身、お子様に合うのかどうかご確認ください!