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

広告

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

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

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

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

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

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

python sample16-1.py

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

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

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

-- --

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

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

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