テレビウムのプログラミング

主にプログラミング関連の記事を書いています

Pythonを使って簡単にファイル名変更方法 : 一括でファイル名を変更するサンプルコード付

この記事で紹介すること

  • Pythonを使い、プログラム中で任意のファイル名を変更する方法

概要

 本記事では、例えば「aaa.拡張子」と書かれたファイルを「bbb.拡張子」といった別の任意のファイル名に書き換える方法を紹介します。
 なお、この方法で拡張子も変更できますが、正しい拡張子を指定しないとファイルを開けなくなってしまうので、拡張子を変更する際は注意してください。

コード紹介

使用するライブラリ
 今回は、osをファイル名の変換用に使用します。

import os
import glob


ファイル名の変換
 ここではは、「C:\Users\task_files\未_Task1.xlsx」を「C:\Users\task_files\完_Task1.xlsx」に変換する例を紹介します。

old_path=r"C:\Users\task_files\未_Task1.xlsx"
new_path=r"C:\Users\task_files\完_Task1.xlsx"
os.rename(old_path,new_path)

 os.renameの関数の第一引数に変更したいファイルの絶対or相対パス(上のコード中ではold_path)を入れ、 第二引数に、変更後のファイル名を記入した絶対or相対パス(上のコードではnew_path)を入れることで ファイル名の変換を行っています。

なおここで、変更後のパスを変更前のファイルがあるパスとは別のパス(例えば「C:\Users\done\完_Task1.xlsx」)とした場合は、 変更前のファイルは元のフォルダから消え、指定した別のパスに移動することになります。

old_path=r"C:\Users\task_files\未_Task1.xlsx"
new_path=r"C:\Users\done\完_Task1.xlsx"
os.rename(old_path,new_path)


サンプルコード
 最後に参考として、os.renameによるファイル名変換を応用し、 「C:\Users\task_files\」のフォルダ内にある「未~.xlsx」と 「未」から始まっているエクセルファイルを一括で「完~.xlsx」と 変換するサンプルコードを紹介します。

folder="C:\\Users\\task\_files\\"
searched_file="*.xlsx"
for i,old_path in enumerate(glob.glob(folder+searched_file)):
    old_fname=old_path.split("\\")[-1]
    if old_fname[0]=="未":
        new_fname="済"+old_fname[1:]
        new_path=folder+new_fname
        print(old_fname+" -> "+new_fname)
        os.rename(old_path,new_path)

簡単な説明
・globライブラリはファイル検索用に使用しています。
・「*」と書かれた部分は、任意の文字列を表しています。
・folder変数に変換したいファイルが保存されているフォルダー名が格納されています。
・searched_file変数に変換したいファイルの拡張子を指定しています。