一个框架,使您编写脚本,就好像它们是用awk编写的一样。

PyAwk的Python项目详细描述


您只需创建一个脚本文件并创建一个扩展pyawk类的类,然后编写一些类似awk的过程。

有一些关于https://github.com/hideshi/PyAwk的例子。

要求

  • python 3.3或更高版本

功能

  • 开始和结束语法,在执行过程中只调用一次。
  • 开始文件和结束文件语法,每个文件只调用一次。
  • awk特定的有效性,如filename、fs、ofs、rs、ors、nf、nr、fnr、fieldwidths。
  • 命令行选项,如调试模式,设置有效性。
  • sqlite3查询。

设置

$ pip install PyAwk

历史记录

0.1.0(2014-02-21)

  • 首次发布

示例

这是ltsv格式数据的解析器。 http://ltsv.org

#!/usr/bin/env python3.3frompyawkimportPyAwk,pclassLTSVParser(PyAwk):defbegin(self):self.FS='\t'self.count=0defaction(self,S):ifnotp(S[0],r'status:200'):self.count+=1self.print('----------')d={}foreleminS[1:]:key,value=elem.split(':',1)d[key]=valueself.print(d)defend(self):self.print('----------')self.print('Total:{}'.format(self.NR))self.print('Matched:{}'.format(self.count))if__name__=='__main__':LTSVParser().run()

然后可以用ltsv文件执行这个脚本。

$ ./ltstparser.py ltsv.log

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spark sample()函数是否复制数据?   java如何在API中返回单例列表?   java我可以生成提供输入/输出的哈希函数吗?   如何“使用MATLAB或JAVA”从文本文件中读取数字并将其保存在数组中?   java如何将十进制转换为十六进制?   JavaPostXML文件   java XStream如何在XML中不存在带注释的字段时引发异常   java Tomcat启动批处理问题   java AccessControlException与同一代码库中的小程序类   java如何将长本地时间戳转换为字符串UTC时间戳   java在同一个JavaVM中有多个沙盒   改进LDAP的Java代码   拖放后未附加到DOM的java元素   java通过socket发送压缩数据