Python遍历目录及子目录并将其中的文件复制到指定目录

 


import os, shutil  
from tqdm import tqdm
  
# 规范化绝对路径  
src_dir = os.path.abspath(r"I:\ADNI_DeepLearning\ADNI1 Annual 2 Yr 3T\MCI")  
dst_dir = os.path.abspath(r"I:\ADNI_DeepLearning_Copy\MCI")  
  
if not os.path.exists(dst_dir):  
    os.makedirs(dst_dir)  
# print("fistr_dir is:\t{}".format(fistr_dir))  
  
if os.path.exists(src_dir):  
    # root 所指的是当前正在遍历的这个文件夹的本身的地址  
    # dirs 是一个 list,内容是该文件夹中所有的目录的名字(不包括子目录)  
    # files 同样是 list, 内容是该文件夹中所有的文件(不包括子目录)  
    for root,dirs,files in os.walk(src_dir):  
        for file in tqdm(files):  
            src_file = os.path.join(root, file)  
            shutil.copy(src_file, dst_dir)  
            print(src_file)  
  
print('congratulations!')  

 

 

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Python的os和shutil模块来实现这个任务。下面是一个示例代码: ```python import os import shutil def get_files_with_specific_name(directory, file_name, output_directory): # 获取目录下的所有文件夹 subdirectories = [name for name in os.listdir(directory) if os.path.isdir(os.path.join(directory, name))] for subdirectory in subdirectories: # 构建当前子文件夹的完整路径 subdirectory_path = os.path.join(directory, subdirectory) # 获取当前子文件夹下的所有文件 files = [name for name in os.listdir(subdirectory_path) if os.path.isfile(os.path.join(subdirectory_path, name))] # 寻找指定文件名的文件复制到输出目录 for file in files: if file == file_name: output_subdirectory = os.path.join(output_directory, subdirectory) os.makedirs(output_subdirectory, exist_ok=True) # 创建输出子文件夹 source_file = os.path.join(subdirectory_path, file) destination_file = os.path.join(output_subdirectory, file) shutil.copy(source_file, destination_file) print(f"已复制文件: {file} 到目录: {output_subdirectory}") # 指定目录和输出目录 directory = 'path/to/directory' output_directory = 'path/to/output_directory' file_name = 'example.txt' # 指定文件名 # 调用函数获取指定文件名的文件并保存到指定文件夹 get_files_with_specific_name(directory, file_name, output_directory) ``` 在上面的示例代码,你需要将`directory`替换为你想要搜索的目录路径,将`output_directory`替换为你想要保存指定文件文件目录路径,将`file_name`替换为你想要获取的特定文件名。代码会遍历指定目录下的所有文件夹,并将符合指定文件名的文件复制指定的输出目录的子文件夹。 请确保在运行代码之前已经安装了必要的模块(os、shutil),并将目录路径和文件名替换为你自己的实际路径和文件名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值