python實(shí)現(xiàn)按關(guān)鍵字篩選日志文件
最近忙成了狗,五六個(gè)項(xiàng)目堆在一起,頭疼的是測(cè)試還失驚無神的給我丟來一個(gè)幾十甚至上百M(fèi)的日志文件,動(dòng)不動(dòng)就幾十上百萬行,就算是搜索也看得頭昏眼花的,因此自己花了點(diǎn)時(shí)間寫了一段小腳本去過濾日志,當(dāng)然這樣的東西網(wǎng)上應(yīng)該大把,但是還是想自己搞下,權(quán)當(dāng)學(xué)習(xí)!
#!/usr/bin/python # -*- encoding: utf-8 -*- # version 1.0 import re import time ''' 用于篩選日志文件,適用于python2.x版本 使用時(shí)將日志文件放于search.py工具同一目錄 篩選完畢后會(huì)出現(xiàn)“舊文件名+當(dāng)前時(shí)間”格式命名的新日志文件 ''' def getParameters(): file_name = "" key_work = "" while (True): file_name = raw_input("請(qǐng)輸入文件名:") key_work = raw_input("請(qǐng)輸入過濾關(guān)鍵字:") if len(file_name) == 0 or len(key_work) == 0: flag = raw_input("您輸入的文件名或關(guān)鍵子為空,輸出c重試,q退出程序:") if flag == "q": return elif flag == "c": continue else: break new_file = file_name + "-" + formatTime(time.localtime()) f = open("./" + file_name, "rb") lines = f.readlines() if len(lines) == 0: print("========日志文件為空========") f.close() return nf = open("./" + new_file, "wb"); count = 0 for line in lines: rs = re.search(key_work, line) if rs: print("[命中]--->%s" % line) nf.write(line) count = count + 1 f.close() nf.close() print("共找到%d條信息" % count) def formatTime(timevalue): ''' format the time numbers ''' return time.strftime("%Y%m%d%H%M%S", timevalue) if __name__ == '__main__': getParameters()
說明:這段腳本我是直接在終端上./xxxx.py的方式運(yùn)行的,我終端由于編譯android源碼需要裝的是python2.7.6,在python3上運(yùn)行估計(jì)會(huì)有問題。
好了,下面是我測(cè)試了下的賽選結(jié)果:
當(dāng)然,這只針對(duì)單個(gè)文件而已!
以上這篇python實(shí)現(xiàn)按關(guān)鍵字篩選日志文件就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python3 獲取一大段文本之間兩個(gè)關(guān)鍵字之間的內(nèi)容方法
- Python爬蟲抓取論壇關(guān)鍵字過程解析
- Python全局變量與global關(guān)鍵字常見錯(cuò)誤解決方案
- python 監(jiān)控logcat關(guān)鍵字功能
- Python中有幾個(gè)關(guān)鍵字
- python數(shù)據(jù)分析:關(guān)鍵字提取方式
- python global關(guān)鍵字的用法詳解
- Python3 文章標(biāo)題關(guān)鍵字提取的例子
- python中的global關(guān)鍵字的使用方法
- 用python獲取txt文件中關(guān)鍵字的數(shù)量
相關(guān)文章
python支持?jǐn)帱c(diǎn)續(xù)傳的多線程下載示例
這篇文章主要介紹了python支持?jǐn)帱c(diǎn)續(xù)傳的多線程下載示例,大家參考使用吧2014-01-01python之線程池map()方法傳遞多參數(shù)list
這篇文章主要介紹了python之線程池map()方法傳遞多參數(shù)list問題,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03如何利用Python將html轉(zhuǎn)為pdf、word文件
網(wǎng)絡(luò)上存在很多將HTML轉(zhuǎn)換為PDF的軟件和工具,但是大家都知道收費(fèi),所以下面這篇文章主要給大家介紹了關(guān)于如何利用Python將html轉(zhuǎn)為pdf、word文件的相關(guān)資料,文中通過示例代碼介紹介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12Python報(bào)錯(cuò):OSError:?[Errno?22]?Invalid?argument解決方案及應(yīng)用實(shí)例
最近跑別人的項(xiàng)目遇到一個(gè)這樣的問題一開始以為是沒有用管理員的權(quán)限運(yùn)行,導(dǎo)致創(chuàng)建不了日志文件后來發(fā)現(xiàn)是和windows的命名規(guī)則沖突了,這篇文章主要給大家介紹了關(guān)于Python報(bào)錯(cuò):OSError:?[Errno?22]?Invalid?argument的解決方案及應(yīng)用實(shí)例,需要的朋友可以參考下2024-07-07pytorch: Parameter 的數(shù)據(jù)結(jié)構(gòu)實(shí)例
今天小編就為大家分享一篇pytorch: Parameter 的數(shù)據(jù)結(jié)構(gòu)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12python基礎(chǔ)學(xué)習(xí)之遞歸函數(shù)知識(shí)總結(jié)
在函數(shù)中調(diào)用函數(shù)自身,我們把這樣的函數(shù)叫做遞歸函數(shù), 遞歸函數(shù)就是循環(huán)的調(diào)用,類似于俄羅斯套娃,本文給各位小伙伴詳細(xì)介紹了python遞歸函數(shù),需要的朋友可以參考下2021-05-05python re正則表達(dá)式模塊(Regular Expression)
Python 的 re 模塊(Regular Expression 正則表達(dá)式)提供各種正則表達(dá)式的匹配操作,在文本解析、復(fù)雜字符串分析和信息提取時(shí)是一個(gè)非常有用的工具.2014-07-07