python小脚本,遍历文件夹A和B,将A文件夹下与B文件夹中名字相同的文件删除(包括子目录)

本文详细描述了一个Python函数,用于在指定文件夹A和B中查找并删除具有相同名称且在A文件夹中非只读的文件,以进行文件筛选和存储空间管理。
摘要由CSDN通过智能技术生成

#删除文件的文件夹属性需要取消 只读 模式
以下代码遍历文件夹A及其子目录,遍历文件夹B及其子目录,将文件夹A中与文件夹B中文件名称相同的文件删除。

适用场景:文件筛选、存储空间清理

import os

# root : 当前目录路径 (字符串)
# dirs : 当前目录下的子目录列表 (列表)
# files : 当前目录下的文件列表 (列表)

def delete_matching_files_by_name(dir_a, dir_b):
    # 遍历dir_a中的文件和文件夹
    for root_a, dirs_a, files_a in os.walk(dir_a):
        # 遍历dir_a中的文件
        for file_a in files_a:
            file_path_a = os.path.join(root_a, file_a)
            for root_b, dirs_b, files_b in os.walk(dir_b):
                for file_b in files_b:
                    # 构造B文件夹下文件的完整路径
                    file_path_b = os.path.join(root_b, file_b)

                    # 检查两个文件是否同名
                    if file_a == file_b:
                        try:
                            # 删除A目录下的文件
                            os.remove(file_path_a)
                            print(f"Deleted file: {file_path_a}")
                        except OSError as e:
                            print(f"Error deleting file {file_path_a}: {e.strerror}")
                            # 找到同名文件后,退出内层循环,继续检查dir_a中的下一个文件
                        break
                        # 如果在dir_b中找到了同名文件并删除,跳出外层循环,继续检查下一个文件
                else:
                    continue
                break  # 如果在dir_a的当前层级找到了同名文件并删除,跳出内层循环


dir_a = r"C:\test.1"
dir_b = r"F:\test.2"
delete_matching_files_by_name(dir_a, dir_b)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谷雨之际

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值