ファイル名またはディレクトリ名を変更する(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 ディレクトリの中に次のようにファイルとディレクトリが含まれています。

ファイル名またはディレクトリ名を変更する(1)

その後で、次のように実行してください。

python sample17-1.py

ファイル名またはディレクトリ名を変更する(2)

ファイル名およびディレクトリ名がそれぞれ変更されました。

ファイル名またはディレクトリ名を変更する(1)

-- --

Python の pathlib モジュールで用意されている Path.rename メソッドを使って、ファイル名またはディレクトリ名を変更する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。