日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

js date 当前日志往后一个月_【应用实例】如何利用 Python 生成器 yield 监控日志?...

發布時間:2025/3/20 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js date 当前日志往后一个月_【应用实例】如何利用 Python 生成器 yield 监控日志?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python 生成器 yield 是編寫基于處理管道,流或數據流程序的一種極其強大的方式,在《Python參考手冊》中有一則實例非常簡單實用,略加修改,分享一下給大家。如果你對生成器yield還不是很了解,可以查看《覺得Python中的生成器(yield)晦澀難懂?看完本文你就知道了》。

Python生成器yield應用實例—監控日志源碼下載

需求分析

假設服務器有一個日志文件,每隔一秒都會更新日志的內容,日志每行中都有一組類似:2017-12-21 14:07:26.471691 99123 數據被寫入日志。 我們的目的是分析日志中的數字如果大于5000就要打印出來。 這樣來看,我們需要一個程序負責模擬日志寫入,另一個程序負責分析日志打印數據。

模擬日志寫入

server_log.py:

import random from datetime import * import os import timedef server_log():# 生成模擬的日志數據server_int = random.randint(1,99999)#生成需要的隨機數server_date = datetime.now()#獲取當前系統時間return str(server_date) + ' ' + str(server_int)#拼裝日志字符串while True:#模擬系統寫入日志#打開日志文件并寫入日志with open(os.path.join(os.path.dirname(__file__),'server_log.log'),'at') as f :s = server_log()print(s)f.write(s + 'n')time.sleep(1)

上邊的代碼已經添加了相關的注釋,這樣我們就有了一個日志文件,每秒會有一第記錄插入到日志中。

利用生成器yield解析日志

生成器可以返回一個迭代的流式的對象,我們可以通過這種方式便捷的獲得相關數據,而且代碼也更清晰易懂

tail.py 代碼如下:

import timedef tail(f):f.seek(0,2)#移動到文件尾部。while True:line = f.readline()if not line :time.sleep(1)continueyield linedef grep(lines):for l in lines:k = int(l.split()[2])if k >50000:yield lserverlog = tail(open('server_log.log')) lines = grep(serverlog)for line in lines:print(line)

我們運行兩個文件看下效果:

代碼雖然簡單,但值得細細品味,感受python的簡約與強大吧。

【專業Python IDE推薦】——PyCharm

PyCharm 是一款Python IDE,其帶有一整套可以幫助用戶在使用Python語言開發時提高其效率的工具。此外,該IDE提供了一些高級功能,以用于Django框架下的專業Web開發。

總結

以上是生活随笔為你收集整理的js date 当前日志往后一个月_【应用实例】如何利用 Python 生成器 yield 监控日志?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。