前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python模拟Linux/Mac OS工具grep和Windows工具findstr

Python模拟Linux/Mac OS工具grep和Windows工具findstr

作者头像
Python小屋屋主
发布2018-04-16 12:14:04
1.4K0
发布2018-04-16 12:14:04
举报
文章被收录于专栏:Python小屋Python小屋

在Linux和Mac OS系统中有个工具grep可以用来查找哪些文件中包含特定的字符串,Windows系统中也有类似的工具findstr,本文代码模拟了这两个工具的工作原理。

from os import listdir from sys import argv

def prepare(fileNames): for item in fileNames: # 把类似于*.txt之类的文件名替换成真实文件名 # 不考虑类似于abc*.py的文件名 if '*' in item: index = item.index('.') fileNames.remove(item) temp = [fn for fn in listdir()\ if fn.endswith(item[index:])] fileNames.extend(temp) def main(desStr, fileNames): result = [] for filename in fileNames: try: # 使用UTF8编码打开文本文件 # 可以根据需要进行改写或扩充 with open(filename, encoding='utf8') as fp: for line in fp: if desStr in line: result.append(filename) break except: pass return result

# 要查找的字符串 desStr = argv[1] # 要查找的全部文件 fileNames = argv[2:]

# 预处理 prepare(fileNames)

# 进行查找并输出结果 result = main(desStr, fileNames) for item in result: print(item)

本程序需要在命令提示符环境中运行,某次运行截图如下:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档