|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!前段工夫有伴侣让协助做一个日记监控的剧本,请求以下:
- 1.windows情况
- 2.当婚配日记关头字时会收回声响,婚配的关头字分歧,播放的声响分歧
- 3.能做到及时呼应
因而从网上找了个windows版的tail,利用python复杂写了个小剧本,代码以下:
- #!/usr/bin/envpython#encoding:utf-8"""MonitorLog.pyUsage:MonitorLog.py...Monitorthelogfile-flogfile-hhelpinfopythonMonitorLog.py-fC:monitor.logCreatedbyzhouboon2011-08-29."""importsysimportosimportgetoptimportsubprocessimporttimeimportcodecsimportwinsoundABSPATH=os.path.dirname(os.path.abspath(__file__))MONITERCONF=moniter_keyword.txt#utf8filedefmain():try:opts,args=getopt.getopt(sys.argv[1:],hf:)exceptgetopt.GetoptError,err:printstr(err)print__doc__return1path=fork,vinopts:ifk==-f:path=velifk==-h:print__doc__return0ifnot(pathandos.path.exists(path)):printInvalidpath:%s%pathprint__doc__return2#下令行元组cmd=(tail,-f,path)print.join(cmd)output=subprocess.Popen(cmd,stdout=subprocess.PIPE)keywordMap={}#加载监控的关头字信息withcodecs.open(os.path.join(ABSPATH,MONITERCONF),r,utf8)asf:lines=f.readlines()forlineinlines:line=line.strip()ifnotline:continuekeyword,wav=line.strip().split(:)keywordMap[keyword]=wavwhileTrue:line=output.stdout.readline()#processcode,失掉输入信息后的处置代码ifnotline:time.sleep(0.01)continueline=line.strip().decode(utf8)printlineforkeywordinkeywordMap:ifline.find(keyword)>-1:winsound.PlaySound(keywordMap[keyword],winsound.SND_NODEFAULT)#time.sleep(0.01)return0if__name__==__main__:sys.exit(main())
复制代码
个中moniter_keyword.txt格局为keyword:sound.wav示例文件以下:- 192.168.8.84:1.wavsha1:3.wavdownload:2.wav
复制代码 如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们! |
|