python 多个文件夹下的图片 复制到 同意文件夹内,并重命名

一、代码

import os
import shutil

src = 'E:\\code\\TecoGAN-PyTorch-master\\data\\REDS_trans\\bicubic4xlr'
target = 'E:\data\SISI_dataset\lr'

path = os.listdir(src)  # 000 001 002
path.sort()
count = len(path)
# print(path)#['000', '001', '002',……‘029’]

num = 1
for i in range(1, count + 1):
    for root, dirs, files in os.walk(src):
        # print(root)#E:\code\TecoGAN-PyTorch-master\data\REDS_trans\gt\000 001 002
        files.sort()
        # print(files) #['00000000.png', '00000001.png', '00000002.png', ……, '00000099.png',]
        for j in range(len(files)):
            if files[j].endswith('png'):
                source = os.path.join(root, files[j])
                #source = os.path.join(src + '\\' + path[i] + '\\', files[j])
                #print(source)
                shutil.copy(source, os.path.join(target, 'trans_' + str(num).zfill(8) + '.png'))
                num += 1

不知道为啥它遍历结束不停止,还重复循环,是一个坑

二、shutil.copy

shutil.copy()具体用法:

shutil.copy(source,destination)

source/destination都是字符串形式的路径,其中destination是:

(1)可以是一个文件的名称,则将source文件复制为新名称的destination

(2)可以是一个文件夹,则将source文件复制到destination中

(3)若这个文件夹不存在,则将source目标文件内的内容复制到destination中

三、os.walk(path)

root 所指的是当前正在遍历的这个文件夹的本身的地址
dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)

你可能感兴趣的