Pythonでファイル名の変更を行う方法

Pythonでファイル名の変更を行うには、[os.rename](https://docs.python.org/3/library/os.html#os.rename)を利用します。

python
os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

基本的な使い方は以下になります。

python
import os

os.rename('old_name.txt', 'new_name.txt')

もしsrcに指定したファイルが見つからない場合は、FileNotFoundErrorエラーになります。

python
FileNotFoundError: [Errno 2] No such file or directory: 'old_name.txt' -> 'new_name.txt'

エラーを発生させたくない場合は、次のように[os.path.exists](https://docs.python.org/ja/3.13/library/os.path.html#os.path.exists)を利用するなどしてターゲットとなるファイルが存在するか確認するようにしましょう。

python
import os

src = 'old_name.txt'
dst = 'new_name.txt'

if os.path.exists(src):
    os.rename(src, dst)

os.rename利用時の注意点が2つあります。

1つ目は、dstに指定したファイル名が既に存在する場合、srcに指定したファイルで元々dstに存在するファイルが上書きされてしまうことです。

2つ目は、ファイル名の変更を行いたいファイルがワーキングディレクトリに存在しない場合、絶対パスを指定する必要があることです。

python
os.rename('/Users/taro/Desktop/old_name.txt', '/Users/taro/Desktop/new_name.txt')

またPython3.3から[os.replace](https://docs.python.org/3/library/os.html#os.replace)が導入されました。os.renameと同じように使うことができます。

python
import os

os.replace('old_name.txt', 'new_name.txt')

参考:https://stackoverflow.com/questions/2491222/how-to-rename-a-file-using-python

関連記事