python實(shí)現(xiàn)搜索指定目錄下文件及文件內(nèi)搜索指定關(guān)鍵詞的方法
更新時(shí)間:2015年06月28日 12:18:25 作者:不吃皮蛋
這篇文章主要介紹了python實(shí)現(xiàn)搜索指定目錄下文件及文件內(nèi)搜索指定關(guān)鍵詞的方法,可實(shí)現(xiàn)針對(duì)文件夾及文件內(nèi)關(guān)鍵詞的搜索功能,需要的朋友可以參考下
本文實(shí)例講述了python實(shí)現(xiàn)搜索指定目錄下文件及文件內(nèi)搜索指定關(guān)鍵詞的方法。分享給大家供大家參考。具體實(shí)現(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)
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- python仿evething的文件搜索器實(shí)例代碼
- python實(shí)現(xiàn)搜索文本文件內(nèi)容腳本
- Python實(shí)現(xiàn)的本地文件搜索功能示例【測(cè)試可用】
- python實(shí)現(xiàn)搜索本地文件信息寫入文件的方法
- python開發(fā)之基于thread線程搜索本地文件的方法
- python實(shí)現(xiàn)的用于搜索文件并進(jìn)行內(nèi)容替換的類實(shí)例
- Python3搜索及替換文件中文本的方法
- python使用正則搜索字符串或文件中的浮點(diǎn)數(shù)代碼實(shí)例
- python將多個(gè)文本文件合并為一個(gè)文本的代碼(便于搜索)
- python 搜索大文件的實(shí)例代碼
相關(guān)文章
基于Python實(shí)現(xiàn)音樂播放器的實(shí)現(xiàn)示例代碼
這篇文章主要介紹了如何利用Python編寫簡(jiǎn)易的音樂播放器,文中的示例代碼講解詳細(xì),具有一的參考價(jià)值,需要的小伙伴可以參考一下2022-04-04
Python中Selenium對(duì)Cookie的操作方法
Cookie內(nèi)記錄用戶名和密碼(加密)信息,只要請(qǐng)求時(shí)服務(wù)器收到Cookie,識(shí)別成功,默認(rèn)為已登陸,今天通過本文給大家分享Selenium對(duì)Cookie的操作方法,感興趣的朋友一起看看吧2021-07-07
python使用knn實(shí)現(xiàn)特征向量分類
這篇文章主要為大家詳細(xì)介紹了python使用knn實(shí)現(xiàn)特征向量分類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12

