如何一次性查找多个文件复制并保存到指定位置,基于python的完整解决方案

一、应用场景:个人文件管理
  • 数据备份:个人电脑中积累了大量重要文件,如照片、文档、视频等分散在各个文件夹。定期进行数据备份时,可一次性找出需要备份的多个文件,复制到外部硬盘、移动存储设备或云存储指定文件夹,确保数据安全,避免因电脑故障、病毒攻击等导致数据丢失。
  • 文件整理:随着时间推移,电脑里的文件变得杂乱无章。为了更好地管理和查找文件,可以根据文件类型、主题等进行分类整理。例如,将分散在不同文件夹中的所有工作文档一次性找出并复制到专门的 “工作文档” 文件夹,方便后续查阅和使用。
二、相关应用获取

今日霍州(www.jrhz.info)©️

找到Timor君回复:批量文件查找

今日霍州(www.jrhz.info)©️

三、实现方法和详细步骤

1. 在单个目录中查找文件并复制

python

import os

import shutil

def copy_files_single_dir(source_dir, target_dir, file_names):

"""

在单个目录中查找指定文件并复制到目标目录

jrhz.info

:param source_dir: 源目录路径

:param target_dir: 目标目录路径

:param file_names: 要查找的文件名列表

"""

# 检查目标目录是否存在,如果不存在则创建

if not os.path.exists(target_dir):

os.makedirs(target_dir)

# 遍历要查找的文件名列表

for file_name in file_names:

source_file_path = os.path.join(source_dir, file_name)

if os.path.isfile(source_file_path):

target_file_path = os.path.join(target_dir, file_name)

try:

# 复制文件

shutil.copy2(source_file_path, target_file_path)

print(f"成功复制文件: {source_file_path} 到 {target_file_path}")

except Exception as e:

print(f"复制文件 {source_file_path} 时出错: {e}")

else:

print(f"文件 {source_file_path} 不存在")

# 示例用法

source_directory = 'your_source_directory'

target_directory = 'your_target_directory'

file_names_to_find = ['file1.txt', 'file2.pdf']

copy_files_single_dir(source_directory, target_directory, file_names_to_find)

2. 在指定目录及其子目录中递归查找文件并复制

python

import os

import shutil

def copy_files_recursive(source_dir, target_dir, file_names):

"""

在指定目录及其子目录中递归查找指定文件并复制到目标目录

:param source_dir: 源目录路径

:param target_dir: 目标目录路径

:param file_names: 要查找的文件名列表

"""

# 检查目标目录是否存在,如果不存在则创建

if not os.path.exists(target_dir):

os.makedirs(target_dir)

# 遍历源目录及其子目录

for root, dirs, files in os.walk(source_dir):

for file in files:

if file in file_names:

source_file_path = os.path.join(root, file)

target_file_path = os.path.join(target_dir, file)

try:

# 复制文件

shutil.copy2(source_file_path, target_file_path)

print(f"成功复制文件: {source_file_path} 到 {target_file_path}")

except Exception as e:

print(f"复制文件 {source_file_path} 时出错: {e}")

# 示例用法

source_directory = 'your_source_directory'

target_directory = 'your_target_directory'

file_names_to_find = ['file1.txt', 'file2.pdf']

copy_files_recursive(source_directory, target_directory, file_names_to_find)

四、代码说明
  • copy_files_single_dir 函数:该函数用于在单个目录中查找指定的文件,并将其复制到目标目录。它会检查目标目录是否存在,如果不存在则创建。然后遍历要查找的文件名列表,检查文件是否存在于源目录中,如果存在则使用 shutil.copy2 函数进行复制。
  • copy_files_recursive 函数:该函数用于在指定目录及其子目录中递归查找指定的文件,并将其复制到目标目录。它使用 os.walk 函数遍历源目录及其子目录,对于每个文件,检查其是否在要查找的文件名列表中,如果是则进行复制。
五、注意事项
  • 请将 your_source_directory 和 your_target_directory 替换为实际的源目录和目标目录路径。
  • shutil.copy2 函数会尽量保留文件的元数据(如文件权限、修改时间等)。
  • 在复制文件时,可能会遇到权限问题或文件已存在等异常情况,代码中会捕获并打印相应的错误信息。
特别声明:[如何一次性查找多个文件复制并保存到指定位置,基于python的完整解决方案] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

早八到晚八焊耳挑战!2025 5 款爆款耳机,谁能赢走你的耳朵?

酷狗 KG280 轻至 5g,魅族 PANDAER 颜值出圈,JBL 运动能打,漫步者降噪能打……不管你是早八学生党、运动狂魔、颜值党还是商务通勤族,都能找到让耳朵 “一见钟情” 的款式,看完这篇实测,选耳…

早八到晚八焊耳挑战!2025 5 款爆款耳机,谁能赢走你的耳朵?

衣物焕新魔法师:衣物去油王背后的活性酶科技(衣物焕新魔法师怎么获得)

为何一些油渍顽强如附骨之疽,而另一些则一擦即净?衣物去油王等专用除油剂借助活性酶的力量,重新定义了清洁之道。本文将揭开其背后的秘密,解析活性酶去油的原理、实际效果及应用场景,为你提供专业的选购建议。

衣物焕新魔法师:衣物去油王背后的活性酶科技(衣物焕新魔法师怎么获得)

隐锋》37集大结局:沈一禾假死,云武自尽,李亨被捕,淑芬可惜(隐锋芒dj版歌曲)

沈一禾没被子弹解决,反而先被上头“安排”走了,我刚想骂人,结果张云虎从巷子阴影里冲出来,一棍子下去,沈一禾喉咙碎了,血溅在墙上像泼出去的颜料。镜头拍着他手指抠喉咙,抠得满嘴泡沫,还喃喃说“机器没坏,是人心算…

《<strong>隐锋</strong>》37集大结局:沈一禾假死,云武自尽,李亨被捕,淑芬可惜(隐锋芒dj版歌曲)

一个小伙穿特步鞋去相亲,被对方拒绝,反而得到了吃瓜群众的支持(社会小伙穿着)

在这个世界上,每个人都是独一无二的存在,就像每双鞋子都有其独特的设计和功能一样。在这个过程中,李明遇到了许多支持他的人。他们还鼓励他要保持自信和乐观,相信自己总有一天会找到那个对的人。 最终,李明在一次偶…

一个小伙穿特步鞋去相亲,被对方拒绝,反而得到了吃瓜群众的支持(社会小伙穿着)

AI+采购供应链怎么应用?国家级指南来了(供应链采购流程的八个步骤)

中国物流与采购联合会今天(12月1日)发布《人工智能+采购供应链应用指南》。《指南》聚焦数智化、绿色化、融合化发展方向,提出构建高效协同、安全可控的现代采购供应链体系。应用层面,聚焦全链条关键场景,覆盖智能需求预测、采购文件合规审查、合同全

AI+采购供应链怎么应用?国家级指南来了(供应链采购流程的八个步骤)