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