こんにちは!
皆さんは、Pythonでファイル・ディレクトリの名前を変更したいと思ったことはありませんか?
ファイル・ディレクトリの名前を変更するには、「os.rename()」「os.renames」を使うと簡単に行うことができますよ。
今回の記事では、以下の内容について紹介します。
- ファイル・ディレクトリの名称変更方法
- ファイル・ディレクトリの名称変更を再帰的に行う方法
ファイル・ディレクトリの名称変更方法
ファイル・ディレクトリの名称変更を行うには、osモジュールの「rename()」「renames()」を使用します。
osモジュールはPythonの標準ライブラリ内にあるため、インストールは必要ありません。
今回は以下のコードで作成したディレクトリ・ファイルの名称変更を行います。
ファイル・ディレクトリの作成方法、ファイル・ディレクトリの一覧取得方法も一緒に確認しましょう。
ソースコード
import os
os.makedirs('testdir/test', exist_ok=True)
with open('testdir/test.txt', 'w') as f:
f.write('')
print(os.listdir('testdir'))
実行結果
['test', 'test.txt']
「test」「test.txt」の名称を変更します。
1つのファイル・ディレクトリの名称変更
「rename()」を使って名称変更を行います。
ソースコード
import os
os.rename("testdir/test", "testdir/test_rename")
os.rename("testdir/test.txt", "testdir/test_rename.txt")
print(os.listdir('testdir'))
実行結果
['test_rename.txt', 'test_rename']
testとtest.txtの名称が変更されていることがわかりますね!
再帰的にファイル・ディレクトリの名称変更
今回は以下のコードで作成したディレクトリの名称変更を再帰的に行います。
ソースコード
os.makedirs('testdir/test1/test2/test3', exist_ok=True)
再帰的にというのは、中間のディレクトリも同時に名称変更が可能ということです。
では、「renames()」を使って再帰的に名称変更を行います。
ソースコード
import os
os.renames("testdir/test1/test2/test3", "testdir/test1_rename/test2_rename/test3_rename")
print(os.path.exists('testdir/test1_rename/test2_rename/test3_rename'))
実行結果
True
「os.path.exists」で名称変更後のpathのディレクトリが存在するかどうかを調べ、返り値がTrueであるため、存在することがわかります。
つまり、中間のディレクトリであるtest1, test2とtest3の名称変更ができているということになります。
まとめ
今回の記事では、以下の内容について紹介しました。
- ファイル・ディレクトリの名称変更方法
→「os.rename()」を使用 - ファイル・ディレクトリの名称変更を再帰的に行う方法
→「os.renames()」を使用
皆さんもファイル・ディレクトリの名称変更する際にはPythonを使ってみたらどうでしょうか。