问题描述
经常会用到整合图片的情况,记录一下
好比目录结构是
-a
-b
1.jpg
2.jpg
3.jpg
-c
1.jpg
2.jpg
3.jpg
如上所示,大文件夹下有好几个文件夹,而各个文件夹下面有需要的jpg图片,想要放在一个文件夹下混合成六张jpg,并且从1开始排,也就是1.jpg-6.jpg,放在E:\face\m文件夹下(也可以直接替换在原文件下,注释代码)。
-m
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
代码
import os
def rename():
path = r'E:\face\a'
count = 1
for files in os.listdir(path):
fold_dir = os.path.join(path, files)
filename = os.listdir(fold_dir) # 该文件夹中文件的名称
for number, temp in enumerate(filename): # 编号,和得到各文件名
new_picname = 'p'+str(count) + '.jpg' # 新文件名(注意跟上文件后缀名),如果这里是多个根目录文件a,你可以在count后加一个数字(根目录文件a下的图片数)
# os.rename(fold_dir + '\\' + temp, fold_dir +'\\'+ new_picname ) # 文件重命名后替换在原路径的原文件中
os.rename(fold_dir + '\\' + temp, "E:\\face\\m\\"+new_picname ) #换路径 src,dist路径
print(new_picname )
count += 1
rename()
其他情况
如果恰好还有个文件是没有根目录而是直接一个文件夹下的图片
-d
1.jpg
2.jpg
3.jpg
然后要把这儿的融合进去上面的,(假如上面的根目录文件下(也就是b和c两个文件夹下总共count=666张图片)
那么直接遍历的代码就是
import os
def rename2():
path = r'E:\d'
filename= os.listdir(path)
count = 1
for number, temp in enumerate(filename): # 编号,和得到各文件名
new_picname = 'p'+str(count+666) + '.jpg' # 新文件名(注意跟上文件后缀名),如果这里是多个根目录文件a,你可以在count后加一个数字(根目录文件a下的图片数)
# os.rename(path+ '\\' + temp, path+'\\'+ new_picname ) # 文件重命名后替换在原路径的原文件中
os.rename(path+ '\\' + temp, "E:\\face\\m\\"+new_picname ) #换路径 src,dist路径
print(new_picname )
count += 1
rename2()