我想将不同文件夹中的所有图像复制到一个文件夹中。但我面临的问题是不同文件夹中的文件具有相同的名称,例如
文件夹:A123正面 A123 Black.jpg、A123 Pink.jpg、A123 Red.jpg
文件夹:A123背面 A123 Black.jpg、A123 Pink.jpg、A123 Red.jpg
我想要实现的是一个文件夹中的所有文件,并命名为,
A123_1.jpg、A123_2.jpg、A123_3.jpg、A123_4.jpg、A123_5.jpg、A123_6.jpg
注意,A123 是产品代码,因此我想要带有图像数量的产品代码,并且该产品代码附加下划线。
这些以千为单位,在子目录中,为了方便起见,我对其进行了简化。
我编写了以下代码,用于进入目录和子目录。
import os
def replace(folder_path):
for path, subdirs, files in os.walk(folder_path):
c=len(files)
for name in files:
if 'Thumb' in name:
continue
file_path = os.path.join(path,name)
print(file_path)
new_name = os.path.join(path,strname)
os.rename(file_path,strname)
c-=1
print('Starting . . . ')
replace('files/GILDAN')
但我不确定应该如何重命名。
最佳答案
要计算目标目录中现有文件的数量,您可以使用正则表达式或简单地使用列表理解,例如:
image_no = len([i for i in os.listdir(destination_path) if i.startswith(product_code)])
使用image_no
在重命名命令中设置图像编号:
os.rename(file_path, product_code + '_' + str(image_no))
关于python - 重命名不同文件夹中同名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51445282/