python递归查询目录下所有文件以及文件夹并进行复制或删除操作

python
import os
import shutil

def find_and_copy_or_delete(source_dir, target_name, operation):
    for root, dirs, files in os.walk(source_dir):
        for name in dirs + files:
            if name == target_name:
                file_path = os.path.join(root, name)
                if operation == 'copy':
                    # 复制文件或目录
                    shutil.copy(file_path, '/path/to/destination')
                    print(f'Copied {file_path} to destination')
                elif operation == 'delete':
                    # 删除文件或目录
                    if os.path.isfile(file_path):
                        os.remove(file_path)
                        print(f'Deleted file: {file_path}')
                    else:
                        shutil.rmtree(file_path)
                        print(f'Deleted directory: {file_path}')

# 用法示例
# 在指定目录下查找名为 "target_directory" 的目录,并复制到目标目录
source_directory = '/path/to/source_directory'
target_directory_name = 'target_directory'
find_and_copy_or_delete(source_directory, target_directory_name, 'copy')

# 在指定目录下查找名为 "target_file.txt" 的文件,并删除
source_directory = '/path/to/source_directory'
target_file_name = 'target_file.txt'
find_and_copy_or_delete(source_directory, target_file_name, 'delete')
在这个示例中,find_and_copy_or_delete 函数接受三个参数:源目录路径、目标名称和操作类型(复制或删除)。它使用 os.walk 遍历源目录及其子目录,并对每个文件或目录进行匹配和操作。
  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值