import os
import glob
import shutildef find_and_copy_docs(root_dir, keyword, target_dir):"""在指定的目录及其子目录下查找包含特定关键词的 Word 文档,并将它们复制到目标文件夹。参数:root_dir: 要搜索的根目录路径。keyword: 需要匹配的关键词。target_dir: 复制到的目标文件夹路径。"""# 为了匹配包含关键词的文件名,构建一个搜索模式pattern = f"*{keyword}*.docx"# 确保目标文件夹存在os.makedirs(target_dir, exist_ok=True)# 存储找到的文件的列表found_files = []# 遍历 root_dir 下的所有目录和子目录for dirpath, dirnames, filenames in os.walk(root_dir):# 在当前目录下查找匹配模式的文件for filename in glob.glob(os.path.join(dirpath, pattern)):found_files.append(filename)# 复制文件到目标文件夹shutil.copy(filename, target_dir)return found_files# 使用示例
root_directory = 'path/to/your/directory' # 请替换为你的目录路径
keyword = '题目总和'
target_directory = 'path/to/target/directory' # 目标文件夹路径,请替换为你的目标路径
matching_files = find_and_copy_docs(root_directory, keyword, target_directory)# 打印结果
print("找到并复制的包含关键词的 Word 文档:")
for file in matching_files:print(file)
这个脚本现在包含了一个 find_and_copy_docs 函数,它接收一个目标文件夹路径作为额外的参数。在找到符合条件的 Word 文档后,脚本使用 shutil.copy 函数将每个文档复制到指定的目标文件夹中。如果目标文件夹不存在,os.makedirs(target_dir, exist_ok=True) 语句将会创建它。
请确保将 root_directory 和 target_directory 变量替换为你想要搜索的实际目录路径和你希望复制文件到的目标文件夹路径。运行脚本后,所有匹配的文件都会被复制到指定的目标文件夹中,同时在控制台打印出这些文件的路径。