python實現(xiàn)搜索指定目錄下文件及文件內搜索指定關鍵詞的方法
更新時間:2015年06月28日 12:18:25 作者:不吃皮蛋
這篇文章主要介紹了python實現(xiàn)搜索指定目錄下文件及文件內搜索指定關鍵詞的方法,可實現(xiàn)針對文件夾及文件內關鍵詞的搜索功能,需要的朋友可以參考下
本文實例講述了python實現(xiàn)搜索指定目錄下文件及文件內搜索指定關鍵詞的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
#!/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實戰(zhàn)之實現(xiàn)獲取動態(tài)圖表
這篇文章主要介紹了利用Python實現(xiàn)動態(tài)化圖表,文中的示例代碼介紹詳細,對我們的工作或學習有一定的價值,感興趣的同學可以學習一下2021-12-12
python實現(xiàn)學生信息管理系統(tǒng)(精簡版)
這篇文章主要為大家詳細介紹了python實現(xiàn)學生信息管理系統(tǒng)的精簡版,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-11-11
Jupyter Notebook讀入csv文件時出錯的解決方案
這篇文章主要介紹了Jupyter Notebook讀入csv文件時出錯的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
python OpenCV的imread不能讀取中文路徑問題及解決
這篇文章主要介紹了python OpenCV的imread不能讀取中文路徑問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

