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