ファイルやディレクトリを操作すると、以下のようなケースが発生することがあります。
ディレクトリにあるファイルを一括で変更するにはどうすればいいの?
そこで今回はファイル名を変更するための関数os.renameについて紹介いたします。
- 【基礎】os.renameとは
- 【基礎】os.renameの使い方
- 【発展】os.renameでファイルを一括変更する方法
ファイル名を変更する方法について、初心者でも理解できるように解説していますので、ぜひ参考にしてみてください。
本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。
→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説
なお、その他のPythonの記事についてはこちらにまとめています。
ファイル名を変更する方法
os.renameとは
os.renameを使用すると既存のファイル名を引数で指定した名称に変更することができます。os.renameは第一引数に変更前のファイル名を、第二引数には変更後のファイル名を指定します。
import os os.rename(変更前ファイル、変更後ファイル)
使用するためにはosモジュールをインポートしておく必要があります。
引数には絶対パスまたは相対パスで削除するファイルを指定します。
os.renameの使い方
ここでは、実際にos.renameを使用してファイル名を変更してみましょう。以下のサンプルでは、os.renameで「sample_00.txt」を「sample_01.txt」に変更しています。
サンプルプログラム:
import os # 変更前ファイル path1 = './dir/sample_00.txt' # 変更後ファイル path2= './dir/sample_01.txt' # ファイル名の変更 os.rename(path1, path2) # ファイルの存在確認 print(os.path.exists(path2))
実行結果:
True
ここでは、最後にos.path.exists関数でファイルの存在有無を確認しています。os.path.existsはファイルが存在するとTrue、存在しないとFalseを返すので、変更したファイル名が存在することがわかります。
なお、対象のファイルが存在しない場合はエラー「FileNotFoundError」が発生しますので、指定したディレクトリにファイルが必ず存在するかわからない場合は、事前に紹介したos.path.exists関数でファイルチェックを行うとよいでしょう。
また、変更後のファイルが既に存在した場合、ファイルが上書きされてしまうので注意しましょう。
ファイル名を一括で変更する方法
rename関数で「一括でファイル名を変更したい」場合は変更対象のファイルを一括で取得してfor文のループで1つずつファイルを変更する方法があります。
サンプルプログラム:
import glob import os # 拡張子.txtのファイルを取得する path = './dir/*.txt' i = 1 # txtファイルを取得する flist = glob.glob(path) print('変更前') print(flist) # ファイル名を一括で変更する for file in flist: os.rename(file, './dir/test' + str(i) + '.txt') i+=1 list = glob.glob(path) print('変更後') print(list)
実行結果:
変更前 ['./dir/sample1.txt', './dir/sample2.txt', './dir/sample3.txt'] 変更後 ['./dir/test1.txt', './dir/test2.txt', './dir/test3.txt']
このサンプルではglob関数を使用してアスタリスクによるパターンマッチング(*.txt)により、拡張子が.txtのファイルを全て取得しています。
取得したファイルリストをfor文のループの中で1つずつos.rename関数でtest_x.txtに変更しています。
ファイル操作についてもっと知りたい方へ
Pythonにはファイル・ディレクトリを操作するためのさまざまな関数が用意されています。ファイル・ディレクトリ操作全般について知りたい方は以下の記事も合わせて参考にしてみてください。
まとめ
ここでは、ファイル名を変更するos.renameについて解説しました。
- os.renameとは
- os.renameの使い方
- os.renameでファイルを一括変更する方法
os.renameを使用すれば、簡単にファイル名の変更が可能ですので使い方は理解しておきましょう。
もし、ファイル名を変更する方法を忘れてしまったら、この記事を思い出してくださいね!