问题描述
因此,我试图在“ img”中每个文件夹中用其文件名中的"%"
重命名所有文件。下面的代码有效。它查找名称中带有"%"
的文件,然后重命名它们。但是,重命名它们后,将显示FileExistsError
。
import string,random,os
length = 40
combination = string.ascii_uppercase + string.ascii_lowercase + string.digits
result_str = "".join(random.choice(combination) for i in range(length))
for folder in os.listdir("./static/img/"):
for folder_ in os.listdir(f"./static/img/{folder}"):
for files_ in os.listdir(f"./static/img/{folder}/{folder_}"):
if "%" in files_:
print(f"./static/img/{folder}/{folder_}/{files_}")
os.rename(f"./static/img/{folder}/{folder_}/{files_}",f"./static/img/{folder}/{folder_}/{result_str}.jpg")
print("Changed Filename")
我曾在重命名之前尝试过os.remove
,就像在另一篇文章中所建议的那样,但是它甚至在重命名之前都会删除文件。
解决方法
该随机字符串在循环之前生成一次,因此将其重命名为相同的名称,它应该位于循环内部,因此对于每次重命名都会有一个(可能)唯一的名称:
ModelViewSet