这是一个第三方库(https://github.com/six8/pytailer),它主要提供了三个功能函数:
1. tail - 从文件的尾部读取数据
2. head - 从文件的头部读取数据
3. follow - 跟踪文件变化并读取增长的行
安装的话很简单:easy_install tailer (or pip install tailer)
使用
[root@CentOS4 tmp]# touch data.log # 创建一个数据文件,并依此追加7行
[root@CentOS4 tmp]# echo 1 >> data.log
[root@CentOS4 tmp]# echo 2 >> data.log
[root@CentOS4 tmp]# echo 3 >> data.log
[root@CentOS4 tmp]# echo 4 >> data.log
[root@CentOS4 tmp]# echo 5 >> data.log
[root@CentOS4 tmp]# echo 6 >> data.log
[root@CentOS4 tmp]# echo 7 >> data.log
[root@CentOS4 tmp]# /usr/local/services/biutility/bin/python
Python 2.7.2 (default, Feb 1 2012, 09:35:12)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tailer # 引入模块
>>> tailer.tail(open('data.log'), 3) # 获取文件的前三行
['5', '6', '7']
>>> tailer.head(open('data.log'), 3) # 获取文件的后三行
['1', '2', '3']
>>> for line in tailer.follow(open('data.log')): # 跟踪文件变化,此时打开另一个终端,并向data.log中追加8,9两行数据
... print(line)
...
8
9
这个模块对于通过简单的监控文件变化(tailer.follow)来得出某些信息的应用情形是非常轻量级的解决方案,与之对应的是使用专业的队列程序。不过对于简单的应用情形来看,这个库就可以满足需求了。