pythonでファイル名変更 ~ os.rename('変更前ファイル名', '変更後ファイル名') 同じファイルがあっても上書きしてくれるんじゃないの?
世間の評判では「os.rename」は、同じファイルが既にあれば上書きしてくれるとのこと。
しかし、上手くいかなかったのだ。
os.rename('変更前ファイル名', '変更後ファイル名')
なので結局、「変更後ファイル名」と同じファイル名のファイルがあった時にエラーになったので存在チェックをはさむ。。。
if not os.path.exists('変更後ファイル名'): os.rename('変更前ファイル名', '変更後ファイル名')
テストコードは下記。
# -*- coding: utf-8 -*- import unittest import os class RenameTest(unittest.TestCase): def test_1(self): os.rename('./input/test.txt', './input/test_rename.txt') pass
これを「/input/test_rename.txt」がある状態で実行すると、エラー。
FileExistsError: [WinError 183] Cannot create a file when that file already exists: './input/test.txt' -> './input/test_rename.txt'
だめらしいね。
誰がなんと言おうと動かしてだめなんだから。
仕様変わった可能性もあるけど、ソースは追っていない。