免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3944 | 回复: 4
打印 上一主题 下一主题

python监听文件内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-06-17 15:09 |只看该作者 |倒序浏览
本帖最后由 agen_0502 于 2013-06-17 15:14 编辑

各位:
    需求如下:
tail -1 files | grep 'key'
files中的内容每秒都在变化(ffmpeg的输出内容),请问如何用python实现?
目前用commands,subprocess.Popen都尝试过,抓取的内容不是最后一行,而是多行。

例如:
cmd = 'tail -1 /tmp/'+ filename +'.log | grep "time="'
status, output = commands.getstatusoutput(cmd)
print  output

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
2 [报告]
发表于 2013-06-17 18:02 |只看该作者
说下思路:
1. shell获取文件尾部动态更新的部分,并grep(tail -f file | grep key)
2. Python再按行输出(subprocess.Popen)
按我的理解,你就是想从文件中,持续获取包含某个key的行。否则这个方案不适用。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
3 [报告]
发表于 2013-06-17 19:07 来自手机 |只看该作者
lz 为啥你想这么做呢?你的问题先说说

论坛徽章:
0
4 [报告]
发表于 2013-06-18 09:12 |只看该作者
对,你说的没错,不过key也是每秒在刷新(在最后一行刷新数值,而不是追加的方式更新内容),所以有时候抓取到的数据是乱的。

不知是不是在读的某一瞬间数值刚好又在变化。

timespace 发表于 2013-06-17 18:02
说下思路:
1. shell获取文件尾部动态更新的部分,并grep(tail -f file | grep key)
2. Python再按行输 ...

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
5 [报告]
发表于 2013-06-18 14:54 |只看该作者
本帖最后由 lolizeppelin 于 2013-06-18 15:00 编辑

pyinotify监控文件
文件变化后收到通知再读取文件
哦好像不符合楼主要求.....


写文件的进程和读文件的进程之间没有互锁,如果你直接锁住文件估计写文件的进程会出错....

所以你想完全实时应该是做不到的,除非干涉文件系统的写,在文件系统写之前通知python,要这样做就大条了
还如你写文件的进程写之前通知python进程
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP