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

Pythonでファイル名の変更を行うには、os.renameを利用します。

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

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

import os

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

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

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

エラーを発生させたくない場合は、次のようにos.path.existsを利用するなどしてターゲットとなるファイルが存在するか確認するようにしましょう。

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

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

またPython3.3からos.replaceが導入されました。os.renameと同じように使うことができます。

import os

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

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

目次