一位Python老司机编写的一个高效搜索代码工具,欢迎讨论!

大多码农在linux环境下使用grep+关键词的命令搜索自己想要的代码或者log文件。今天介绍用python如何编写一个更强大的搜索工具,windows下也适用。

我们的需求:

可以同时指定多个关键词。比如某个文件某一行中有”error: aa bb cc”,如果检索关键词error和cc则可以显示该行,避免单一关键词冗余信息太多

可以排除某些关键词。对于”error: aa bb cc”,如果设定排除bb,则不予显示该行

可以指定某些文件名或者文件名后缀,如只搜索.cpp和.h的文件

可以排除某些文件名或者后缀,比如排除 .log 和 .bak

最重要一点,和grep一样,必须能够递归查找,只要指定一个目录,则自动逐层搜索该目录下所有的子文件夹,文件

最后能打印出吻合的文件完整路径,能显示搜索到的行号

为了实现以上功能,我们需要用到python自带的os库函数,功能强大,先把用到的几个先做简单说明:

os.path.exists ( xxx ) 判断路径xxx是否存在

os.listdir ( xxx ) 把xxx路径下所有文件和文件夹名字转换成一个list列表

os.path.join ( aaa, bbb ) 把字符串aaa和bbb拼接成一个完整的文件绝对路径

os.path.isfile (xxx) 判断xxx是不是一个文件

os.path.isdir (xxx) 判断xxx是不是一个文件夹

完整代码:

欢迎各位大佬,留言讨论!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181009A205EQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券