缘起:
开发人员需要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库)):
<span>import</span><span> os </span><span>#</span><span> 打開日誌文件并计数</span> <span>def</span><span> read_log(url,keyword): count </span>=<span> 0 with open(url,</span><span>"</span><span>r</span><span>"</span>,encoding=<span>"</span><span>utf-8</span><span>"</span>) as f: <span>#</span><span> 打开文件</span> <span>for</span> line <span>in</span> f: <span>#</span><span> 按行读取txt文件</span> count += line.count(keyword,53,64) <span>#</span><span> count()方法计数,keyword为传入的关键字(字符串)</span> <span>return</span><span> count path</span>= <span>"</span><span>E:pythonvscode工作log80</span><span>"</span><span> dirlist </span>= os.listdir(path) <span>#</span><span> 获取path路径下的所有txt文件名</span> <span> sum </span>=<span> 0 </span><span>for</span> name <span>in</span> dirlist: <span>#</span><span> 遍历获取txt文件名</span> url = path +<span> name num </span>=<span> read_log(url,keyword) </span><span>print</span>(str(name) + <span>"</span><span> 文件中个数为: </span><span>"</span> +<span> str(num)) sum </span>+=<span> num </span><span>print</span>(<span>"</span><span>关键字总个数: </span><span>"</span> + str(sum))
www#gaodaima.com来源gao@daima#com搞(%代@#码@网搞代码