缘起:
开发人员需要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库)):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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 ))
|
以上就是用python获取txt文件中关键字的数量的详细内容,更多关于python 获取关键字的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/shiqing-zhang/p/14173957.html