您当前的位置:首页 > 计算机 > 编程开发 > Python

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

时间:12-26来源:作者:点击数:

在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)

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

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门