python实现搜索指定目录下文件及文件内搜索指定关键词的方法


Posted in Python onJune 28, 2015

本文实例讲述了python实现搜索指定目录下文件及文件内搜索指定关键词的方法。分享给大家供大家参考。具体实现方法如下:

#!/usr/bin/python -O
# -*- coding: UTF-8 -*-
"""
Sucht rekursiv in Dateiinhalten und listet die Fundstellen auf.
"""
__author__ = "Jens Diemer"
__license__ = """GNU General Public License v2 or above -
 http://www.opensource.org/licenses/gpl-license.php"""
__url__ = "http://www.jensdiemer.de"
__version__ = "0.1"
import os, time, fnmatch
class search:
  def __init__(self, path, search_string, file_filter):
    self.search_path = path
    self.search_string = search_string
    self.file_filter = file_filter
    print "Search '%s' in [%s]..." % (
      self.search_string, self.search_path
    )
    print "_" * 80
    time_begin = time.time()
    file_count = self.walk()
    print "_" * 80
    print "%s files searched in %0.2fsec." % (
      file_count, (time.time() - time_begin)
    )
  def walk(self):
    file_count = 0
    for root, dirlist, filelist in os.walk(self.search_path, followlinks=True):
      for filename in filelist:
        for file_filter in self.file_filter:
          if fnmatch.fnmatch(filename, file_filter):
            self.search_file(os.path.join(root, filename))
            file_count += 1
    return file_count
  def search_file(self, filepath):
    f = file(filepath, "r")
    content = f.read()
    f.close()
    if self.search_string in content:
      print filepath
      self.cutout_content(content)
  def cutout_content(self, content):
    current_pos = 0
    search_string_len = len(self.search_string)
    for i in xrange(max_cutouts):
      try:
        pos = content.index(self.search_string, current_pos)
      except ValueError:
        break
      content_window = content[ pos - content_extract : pos + content_extract ]
      print ">>>", content_window.encode("String_Escape")
      current_pos += pos + search_string_len
    print
if __name__ == "__main__":
  search_path = r"c:\texte"
  file_filter = ("*.py",) # fnmatch-Filter
  search_string = "history"
  content_extract = 35 # Gr��e des Ausschnittes der angezeigt wird
  max_cutouts = 20 # Max. Anzahl an Treffer, die Angezeigt werden sollen
  search(search_path, search_string, file_filter)

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python获取各操作系统硬件信息的方法
Jun 03 Python
Python安装第三方库及常见问题处理方法汇总
Sep 13 Python
Python实现字符串的逆序 C++字符串逆序算法
May 28 Python
Python爬虫常用小技巧之设置代理IP
Sep 13 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
Oct 09 Python
使用Python做定时任务及时了解互联网动态
May 15 Python
Django 静态文件配置过程详解
Jul 23 Python
Python使用指定端口进行http请求的例子
Jul 25 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
Feb 20 Python
Python3 assert断言实现原理解析
Mar 02 Python
python 用pandas实现数据透视表功能
Dec 21 Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
Jul 23 Python
分析用Python脚本关闭文件操作的机制
Jun 28 #Python
python实现linux下使用xcopy的方法
Jun 28 #Python
自动化Nginx服务器的反向代理的配置方法
Jun 28 #Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 #Python
在Python中使用zlib模块进行数据压缩的教程
Jun 26 #Python
Python中的zipfile模块使用详解
Jun 25 #Python
Python实现保证只能运行一个脚本实例
Jun 24 #Python
You might like
给ECShop添加最新评论
2015/01/07 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
javascript判断单选框或复选框是否选中方法集锦
2007/04/04 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
如何获取网站icon有哪些可行的方法
2014/06/05 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
jQuery模拟物体自由落体运动(附演示与demo源码下载)
2016/01/21 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
Python 使用with上下文实现计时功能
2018/03/09 Python
python实现简单神经网络算法
2018/03/10 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
Python数据报表之Excel操作模块用法分析
2019/03/11 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
对Python函数设计规范详解
2019/07/19 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
Python如何使用input函数获取输入
2020/08/06 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
挑战杯创业计划书的写作指南
2014/01/07 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
收入证明范本
2015/06/12 职场文书
五一放假通知怎么写
2015/08/18 职场文书
python 下载文件的几种方式分享
2021/04/07 Python
Django操作cookie的实现
2021/05/26 Python