如何重命名 python 中包含相同名称的子文件夹

How to rename subfolders which contain same name in python

我正在尝试以奇数顺序 (1,3,5,...) 重命名从 61440122800 的子文件夹,但是当到达相同的旧名称时出现错误:

 WinError 183] Cannot create a file when that file already exists:
'Input_Intact/77120' -> 'Input_Intact/77121'

您可以看到下面的代码:

import os

for dirname in os.listdir("."):
       if os.path.isdir(dirname):
        for i, filename in enumerate(os.listdir(dirname)):
            j=i+1
            os.rename(dirname + "/" + filename, dirname + "/" + str(i+j))

像这样对文件进行批量重命名时,可能会出现文件的新名称与另一个文件的旧名称相同的情况。这将导致您看到错误消息(“文件已存在”)。

基本上有两种方法可以解决这个问题。第一种是分两步重命名文件:首先,给所有文件一个临时名称(例如附加 .tmp),这样就不会与现有文件发生冲突。然后,执行第二次重命名文件以删除该后缀。

第二种方法是创建一个临时子目录,并在重命名时将文件移动到那里。完成后,将文件移回原始目录并删除临时子目录。