ファイル名またはディレクトリ名を変更する
Python の os モジュールで用意されている rename 関数を使って、ファイル名またはディレクトリ名を変更する方法について解説します。
※ pathlib モジュールを使ってファイル名やディレクトリ名を変更するには「ファイル名またはディレクトリ名を変更する(pathlibモジュール)」を参照されてください。
(Last modified: )
ファイル名またはディレクトリ名を変更する
ファイル名またはディレクトリ名するには os モジュールで用意されている rename 関数を使用します。
os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)
1 番目の引数に指定したパスが示すファイル名またはディレクトリ名を、 2 番目の引数に指定したパスが示すファイル名またはディレクトリ名に変更します。
例えば次のように記述します。下記はファイル名を変更した場合です。
import os
oldpath = './test/book.txt'
newpath = './test/memo.txt'
os.rename(oldpath, newpath)
ファイル名を変更する場合、変更前と変更後でファイルのディレクトリが異なっていても問題ありません。
import os
oldpath = './test/book.txt'
newpath = './test/back/memo.txt'
os.rename(oldpath, newpath)
ただし、変更後のディレクトリが存在しない場合 FileNotFoundError が発生します。
import os
oldpath = './test/book.txt'
newpath = './back/memo.txt'
os.rename(oldpath, newpath)
>> FileNotFoundError: [WinError 3] 指定されたパスが見つかりません。: './test/book.txt' -> './back/memo.txt'
ディレクトリ名を変更する場合も同じです。
import os
oldpath = './test/back'
newpath = './test/old'
os.rename(oldpath, newpath)
ディレクトリ名を変更する場合も、変更前と変更後でディレクトリの親ディレクトリが変更されていても問題ありません。
import os
oldpath = './test/back'
newpath = './test/img/back'
os.rename(oldpath, newpath)
ただし、変更後のディレクトリの親ディレクトリが存在しない場合 FileNotFoundError が発生します。
import os
oldpath = './test/back'
newpath = './test/log/back'
os.rename(oldpath, newpath)
>> FileNotFoundError: [WinError 3] 指定されたパスが見つかりません。: './test/back' -> './test/log/back'
Windows 環境の場合、変更後のパスが既に存在した場合 FileExistsError が発生します。
import os
oldpath = './test/book.txt'
newpath = './test/address.txt'
os.rename(oldpath, newpath)
>> FileExistsError: [WinError 183] 既に存在するファイルを作成することはできません。: './test/book.txt' -> './test/address.txt'
それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 sample16-1.py という名前で保存します。
import os oldpath = './test/book.txt' newpath = './test/memo.txt' os.rename(oldpath, newpath) oldpath = './test/back' newpath = './test/old' os.rename(oldpath, newpath)
プログラムと同じディレクトリの中に test という名前のディレクトリがあり、 test ディレクトリの中に次のようにファイルとディレクトリが含まれています。
その後で、次のように実行してください。
python sample16-1.py
ファイル名およびディレクトリ名がそれぞれ変更されました。
-- --
Python の os モジュールで用意されている rename 関数を使って、ファイル名またはディレクトリ名を変更する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。