图片归类生成文件夹然后生成word

发布时间 2023-10-11 09:51:09作者: dafengchui
import os
import shutil

# 指定根文件夹路径
root_folder = "C:/Users/Administrator/Desktop/qrCode2"

# 创建两个子文件夹
if not os.path.exists(os.path.join(root_folder, '20')):
    os.makedirs(os.path.join(root_folder, '20'))
if not os.path.exists(os.path.join(root_folder, '线路')):
    os.makedirs(os.path.join(root_folder, '线路'))

# 遍历根文件夹下的所有png图片文件
for file in os.listdir(root_folder):
    if file.endswith('.png'):
        # 检查文件名是否包含"20-"
        if '20-' in file:
            # 移动文件到"20"文件夹
            shutil.move(os.path.join(root_folder, file), os.path.join(root_folder, '20', file))
        else:
            # 移动文件到"线路"文件夹
            shutil.move(os.path.join(root_folder, file), os.path.join(root_folder, '线路', file))

# 指定根文件夹路径
root_folder = "C:/Users/Administrator/Desktop/all"

# 创建两个子文件夹
if not os.path.exists(os.path.join(root_folder, '20')):
    os.makedirs(os.path.join(root_folder, '20'))
if not os.path.exists(os.path.join(root_folder, '线路')):
    os.makedirs(os.path.join(root_folder, '线路'))

# 遍历根文件夹下的所有子文件夹
for foldername in os.listdir(root_folder):
    if os.path.isdir(os.path.join(root_folder, foldername)):
        # 检查文件夹名称是否包含"20-"
        if '20-' in foldername:
            # 定义目标路径
            target_path = os.path.join(root_folder, '20', foldername)
            # 如果目标路径存在,则选择一个新的目标路径或删除现有的目标路径
            if os.path.exists(target_path):
                # 选择一个新的目标路径或删除现有的目标路径(前提是它是一个空文件夹)
                new_target_path = os.path.join(root_folder, '线路', foldername)
                shutil.move(os.path.join(root_folder, foldername), new_target_path)
            else:
                # 移动文件夹到"20"文件夹
                shutil.move(os.path.join(root_folder, foldername), target_path)
        # 如果文件夹名称为"20"或"线路",则跳过
        elif foldername in ['20', '线路']:
            continue
        else:
            # 移动文件夹到"线路"文件夹
            shutil.move(os.path.join(root_folder, foldername), os.path.join(root_folder, '线路', foldername))

# 给定一个只有png图片的文件夹地址
png_folder = "C:/Users/Administrator/Desktop/qrCode2/20"

# 和一个有n个文件夹的根文件夹地址
root_folder = "C:/Users/Administrator/Desktop/all/20"

# 获取png_folder中的所有文件名
files = os.listdir(png_folder)

# 创建一个名为"新建文件夹1"的新文件夹,如果它还不存在的话
new_folder = "新建文件夹1"
new_folder_path = os.path.join(root_folder, new_folder)
if not os.path.exists(new_folder_path):
    os.makedirs(new_folder_path)
#字符个数循环
for i in range(6, 0, -1):
    # 遍历所有PNG图片
    if i == 1 :
        for file in files:
            # 检查文件是否为PNG图片
            if file.endswith('.png'):
                # 获取文件名前i个字符
                file_prefix = file[:i]
                # 遍历所有子文件夹,检查是否有匹配的文件夹
                for foldername in os.listdir(root_folder):
                    # 获取子文件夹名称前i个字符
                    folder_prefix = foldername[:i]
                    # 如果匹配,将图片复制到相应的文件夹中
                    if file_prefix == folder_prefix:
                        source = os.path.join(png_folder, file)
                        destination = os.path.join(root_folder, foldername, file)
                        shutil.move(source, destination)
                        break  # 如果找到匹配的文件夹,就跳出内层循环,处理下一张图片
                    else:
                        # 如果没有找到匹配的文件夹,则将文件移动到"新建文件夹1"中
                        src = os.path.join(png_folder, file)
                        dst = os.path.join(new_folder_path, file)
                        shutil.move(src, dst)
                        break
    else :
        for file in files:
            # 检查文件是否为PNG图片
            if file.endswith('.png'):
                # 获取文件名前i个字符
                file_prefix = file[:i]
                # 遍历所有子文件夹,检查是否有匹配的文件夹
                for foldername in os.listdir(root_folder):
                    # 获取子文件夹名称前i个字符
                    folder_prefix = foldername[:i]
                    # #建立子文件地址
                    # file_path = root_folder + '/' + foldername
                    # if any(f.endswith('.png') for f in os.listdir(file_path)):
                    #     # 如果有图片,就跳过这个文件夹,处理下一个文件夹
                    #     continue
                    # 如果匹配,将图片复制到相应的文件夹中
                    if file_prefix == folder_prefix:
                        source = os.path.join(png_folder, file)
                        destination = os.path.join(root_folder, foldername, file)
                        shutil.move(source, destination)
                        break  # 如果找到匹配的文件夹,就跳出内层循环,处理下一张图片
# 给定一个只有png图片的文件夹地址
png_folder = "C:/Users/Administrator/Desktop/qrCode2/线路"

# 和一个有n个文件夹的根文件夹地址
root_folder = "C:/Users/Administrator/Desktop/all/线路"

# 获取png_folder中的所有文件名
files = os.listdir(png_folder)

# 创建一个名为"新建文件夹1"的新文件夹,如果它还不存在的话
new_folder = "新建文件夹1"
new_folder_path = os.path.join(root_folder, new_folder)
if not os.path.exists(new_folder_path):
    os.makedirs(new_folder_path)
#字符个数循环
for i in range(6, 0, -1):
    # 遍历所有PNG图片
    if i == 1 :
        for file in files:
            # 检查文件是否为PNG图片
            if file.endswith('.png'):
                # 获取文件名前i个字符
                file_prefix = file[:i]
                # 遍历所有子文件夹,检查是否有匹配的文件夹
                for foldername in os.listdir(root_folder):
                    # 获取子文件夹名称前i个字符
                    folder_prefix = foldername[:i]
                    # 如果匹配,将图片复制到相应的文件夹中
                    if file_prefix == folder_prefix:
                        source = os.path.join(png_folder, file)
                        destination = os.path.join(root_folder, foldername, file)
                        shutil.move(source, destination)
                        break  # 如果找到匹配的文件夹,就跳出内层循环,处理下一张图片
                    else:
                        # 如果没有找到匹配的文件夹,则将文件移动到"新建文件夹1"中
                        src = os.path.join(png_folder, file)
                        dst = os.path.join(new_folder_path, file)
                        shutil.move(src, dst)
                        break
    else :
        for file in files:
            # 检查文件是否为PNG图片
            if file.endswith('.png'):
                # 获取文件名前i个字符
                file_prefix = file[:i]
                # 遍历所有子文件夹,检查是否有匹配的文件夹
                for foldername in os.listdir(root_folder):
                    # 获取子文件夹名称前i个字符
                    folder_prefix = foldername[:i]
                    # #建立子文件地址
                    # file_path = root_folder + '/' + foldername
                    # if any(f.endswith('.png') for f in os.listdir(file_path)):
                    #     # 如果有图片,就跳过这个文件夹,处理下一个文件夹
                    #     continue
                    # 如果匹配,将图片复制到相应的文件夹中
                    if file_prefix == folder_prefix:
                        source = os.path.join(png_folder, file)
                        destination = os.path.join(root_folder, foldername, file)
                        shutil.move(source, destination)
                        break  # 如果找到匹配的文件夹,就跳出内层循环,处理下一张图片