下面的代码存在问题它不能删除非空的文件夹要求不管是不是空都删除。注意:不要删除rar压缩文件不要删除没有同名rar压缩文件的文件夹及文件夹内的内容注意:不要删除rar压缩文件不要删除没有同名rar压缩文件的文件夹及文件夹内的内容注意:不要删除rar压缩文件不要删除没有同名rar压缩文件的文件夹及文件夹内的内容import os# 遍历目录下的所有文件和文件夹返回同名的文件夹和rar压缩文件def
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: 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_name = folder if file_name not in file_dict: file_dict[file_name] = "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) for subdir, subdirs, subfiles in os.walk(folder_path): for subfile in subfiles: if not subfile.endswith(".rar"): os.remove(os.path.join(subdir, subfile)) 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/fIUq 著作权归作者所有。请勿转载和采集!