python獲取txt文件中關鍵字的數量


緣起:

  開發人員需要tomcat中一個項目在一個月的訪問請求量,因其他原因只剩下查找tomcat請求日志的方法獲取,剛好最近在學習python,於是就用python摸索了下;

大體思路:1.把相應tomcat的日志文件拷到有python環境的機器

     2.用os.listdir()獲取到目錄下所有文件名稱的列表,再用for循環遍歷列表加上字符串拼接得到已文件名的具體路徑

     3.用open()讀取文件,下面代碼中for line in f:是按行讀取txt文件的內容(一行一行的讀,不會加載全部文件內容)

     4.用count()方法統計以項目為名的關鍵字(字符串)

知識點:文件的讀取和count()方法

  Python count() 方法用於統計字符串里某個字符出現的次數。可選參數為在字符串搜索的開始與結束位置。

  count()方法語法:str.count(sub, start= 0,end=len(string))

  參數:

  • sub -- 搜索的子字符串
  • start -- 字符串開始搜索的位置。默認為第一個字符,第一個字符索引值為0。
  • end -- 字符串中結束搜索的位置。字符中第一個字符的索引為 0。默認為字符串的最后一個位置。

代碼如下(如果文件過多可以加工作隊列(gevent庫)):

import os

# 打開日誌文件並計數
def read_log(url,keyword):
    count = 0
    with open(url,'r',encoding='utf-8') as f:    # 打開文件
    for line in f:                                    # 按行讀取txt文件
        count += line.count(keyword,53,64)    # count()方法計數,keyword為傳入的關鍵字(字符串)
return count

path= 'E:\\python\\vscode\\工作\\log\\80\\'
dirlist = os.listdir(path)    # 獲取path路徑下的所有txt文件名

sum = 0
for name in dirlist:       # 遍歷獲取txt文件名
    url = path + name
    num = read_log(url,keyword)
    print(str(name) + ' 文件中個數為: ' + str(num))
    sum += num
print('關鍵字總個數: ' + str(sum)) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM