如何重命名 python 中包含相同名称的子文件夹
How to rename subfolders which contain same name in python
我正在尝试以奇数顺序 (1,3,5,...) 重命名从 61440
到 122800
的子文件夹,但是当到达相同的旧名称时出现错误:
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
),这样就不会与现有文件发生冲突。然后,执行第二次重命名文件以删除该后缀。
第二种方法是创建一个临时子目录,并在重命名时将文件移动到那里。完成后,将文件移回原始目录并删除临时子目录。
我正在尝试以奇数顺序 (1,3,5,...) 重命名从 61440
到 122800
的子文件夹,但是当到达相同的旧名称时出现错误:
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
),这样就不会与现有文件发生冲突。然后,执行第二次重命名文件以删除该后缀。
第二种方法是创建一个临时子目录,并在重命名时将文件移动到那里。完成后,将文件移回原始目录并删除临时子目录。