下面的代码存在问题它不能删除非空的文件夹要求不管是不是空都删除。注意:不要删除rar压缩文件和没有同名rar压缩文件的文件夹注意:不要删除rar压缩文件和没有同名rar压缩文件的文件夹注意:不要删除rar压缩文件和没有同名rar压缩文件的文件夹注意:不要删除rar压缩文件和没有同名rar压缩文件的文件夹import os# 遍历目录下的所有文件和文件夹返回同名的文件夹和rar压缩文件def fin
import os
遍历目录下的所有文件和文件夹,返回同名的文件夹和rar压缩文件
def find_same_name_files(path): file_dict = {} for root, dirs, files in os.walk(path): for file in files: if file.endswith(".rar"): file_name = file[:-4] if file_name not in file_dict or file_dict[file_name] != ".rar": file_dict[file_name] = ".rar" else: file_name = file if file_name not in file_dict: file_dict[file_name] = "folder" for folder in dirs: if folder not in file_dict: folder_path = os.path.join(root, folder) file_dict[folder] = "folder" return file_dict
删除同名的文件夹
def delete_same_name_folders(path, file_dict): for root, dirs, files in os.walk(path): for folder in dirs: if folder in file_dict and file_dict[folder] == "folder": folder_path = os.path.join(root, folder) if not os.path.exists(os.path.join(folder_path, folder + ".rar")): # 如果不存在同名的rar压缩文件,则删除文件夹及其内容 for sub_root, sub_dirs, sub_files in os.walk(folder_path): for file in sub_files: if not file.endswith(".rar"): os.remove(os.path.join(sub_root, file)) os.rmdir(folder_path)
整理文件
def organize_files(path): file_dict = find_same_name_files(path) delete_same_name_folders(path, file_dict)
测试
organize_files("path/to/directory"
原文地址: https://www.cveoy.top/t/topic/fIUg 著作权归作者所有。请勿转载和采集!