图片归类生成文件夹然后生成word
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 # 如果找到匹配的文件夹,就跳出内层循环,处理下一张图片