Python如何查找文件夹中含有指定关键字的文件
作者:进阶的小幺
这篇文章主要介绍了Python如何查找文件夹中含有指定关键字的文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Python查找文件夹中含有指定关键字的文件
查找文件夹中含有指定关键字的文件,并将该文件复制到另一个文件夹中
'''
查找文件夹中含有指定关键字的文件,并将该文件复制到另一个文件夹中
'''
import os
import shutil
def copyfile_base_keyword_in_file(file_pathname):
# 遍历该目录下的所有图片文件
for filename in os.listdir(file_pathname):
#path = os.path.join(r'D:/copykeywordw/notations', filename)
path = os.path.join(file_pathname, filename)
f = open(path, 'r')
lines = f.readlines()
for lines in lines:
if 'face_with_mask' in lines: # 此处关键词为'face_with_mask',根据自己需求更改
shutil.copy(src_dir_path + '/' + filename, to_dir_path + '/' + filename)
copyfile_base_keyword_in_file(r'D:/copykeywordw/notations') # 文件夹目录Python查找文件夹下含有特定关键字的文档word 查找word中的关键词等
应用场景
我们学校搞综测会发放一个压缩包,里面含有各种活动的加分证明,想要快速且不遗漏的找到自己的名字的话,就可以来跑一下这个py啦!
环境:jupyter
要求:事先安装 pip install python-docx
代码修改处:文件存放根目录和要搜索的关键词
#coding=utf-8
from docx import Document
import os,sys
def search_word(filename,word):
#打开文档
document = Document(filename)
#读取每段资料
pa=document.paragraphs
#拼接每一段的内容
para_list = []
for para in pa:
para_list.append(para.text)
#合并字符串
file_text = ''.join(para_list)
if word in file_text:
print("find file for {}:".format(word))
print(filename)
process_list=[]
def get_process_files(root_dir):
"""process all files in directory"""
cur_dir=os.path.abspath(root_dir)
file_list=os.listdir(cur_dir)
for file in file_list:
fullfile=cur_dir+"\\"+file
if os.path.isfile(fullfile):
process_list.append(fullfile)
elif os.path.isdir(fullfile):
dir_extra_list=get_process_files(fullfile)
return process_list
def find_files(root_dir,word):
get_process_files(root_dir)
print("总计文件数:{}".format(len(process_list)))
for files in process_list:
search_word(files, word)
return
if __name__=='__main__':
#此处修改自己存放文件位置和名字
#文件根目录
root_dir=r'D:\beizhai\study\大四\综测\【2021】XX学院综测公示文件'
#要搜索的关键字
word="beizhai"
count=0
try:
find_files(root_dir,word)
except:
pass总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
