使用python对多层目录下的文件改名,并且存到一个文件下?

img

PrivateTest文件下有7个子文件,这些子文件里都是jpg格式的图片。

现在需要修改对应子文件下的图片文件名,
例如anger文件下的图片文件名都加上anger前缀,disgust文件下的图片文件名都加上disgust前缀,其他同理;

还需要将这些修改后的图片文件都放在一个文件夹下。


import os
import shutil

path='/PrivateTest/'
res_path='/test1/'  ##存放文件夹
if not os.path.exists(res_path):
    os.makedirs(res_path)
    
dirs=os.listdir(path)
for dir1 in dirs:
    for f in dir1:
        shutil.copy(path+dir1+'/'+f,res_path+dir1+f)  ##复制移动

import os
import shutil


def copyimg(output_path):
    # 改成你的PrivateTest路径
    BASEPATH = "E:\\MyPython\\PrivateTest"
    paths = [os.path.join(BASEPATH, x) for x in os.listdir(BASEPATH)]
    for path in paths:
        path_name = os.path.basename(path)
        for img in os.listdir(path):
            oldname = os.path.join(path, img)
            newname = "".join([path_name, os.path.splitext(img)
                               [0], os.path.splitext(img)[1]])
            newname = os.path.join(path, newname)
            if not newname.startswith(path_name):
                os.rename(oldname, newname)
            shutil.copy(newname, os.path.join(
                output_path, os.path.basename(newname)))


if __name__ == "__main__":
    output_path = input("输入你的图片存放完整路径:")
    copyimg(output_path)

bj_0163_bj 说的对