python找到文件夹A中但是不在文件夹B中的文件
这里主要使用os模块:
os.listdir(路径):找到路径下的全部文件夹os.path.isdir(路径):验证某个路径是否是一个文件夹
示例代码
import os
import sysdef find_missing_folders(path_a, path_b):"""找出在path_a中存在但在path_b中不存在的文件夹Args:path_a (str): 第一个文件夹路径path_b (str): 第二个文件夹路径Returns:list: 在path_a中存在但在path_b中不存在的文件夹列表"""try:# 获取两个路径下的所有文件夹folders_a = {name for name in os.listdir(path_a)if os.path.isdir(os.path.join(path_a, name))}folders_b = {name for name in os.listdir(path_b)if os.path.isdir(os.path.join(path_b, name))}# 找出在A中存在但在B中不存在的文件夹missing_folders = sorted(list(folders_a - folders_b))return missing_foldersexcept FileNotFoundError as e:print(f"错误: 路径不存在 - {e}")return []except PermissionError as e:print(f"错误: 没有访问权限 - {e}")return []except Exception as e:print(f"错误: {e}")return []if __name__ == "__main__":# 从命令行参数获取路径path_a = r"路径A"path_b = r"路径B"# 检查路径是否存在if not os.path.exists(path_a):print(f"错误: 路径A '{path_a}' 不存在")sys.exit(1)if not os.path.exists(path_b):print(f"错误: 路径B '{path_b}' 不存在")sys.exit(1)# 查找缺失的文件夹missing = find_missing_folders(path_a, path_b)if missing:print(f"在 '{path_a}' 中存在但在 '{path_b}' 中不存在的文件夹:")for folder in missing:print(f" - {folder}")print(f"\n总计: {len(missing)} 个文件夹")else:print(f"'{path_a}' 中的所有文件夹在 '{path_b}' 中都存在")
