ファイル名またはディレクトリ名を変更する(pathlibモジュール)

広告

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

※ os モジュールを使ってファイル名やディレクトリ名を変更するには「ファイル名またはディレクトリ名を変更する」を参照されてください。

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

ファイル名またはディレクトリ名するには 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

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。