美文网首页
批量文档搜索关键字-基于python脚本的实现

批量文档搜索关键字-基于python脚本的实现

作者: python菜鸟 | 来源:发表于2018-08-05 18:20 被阅读30次
    封面

    需求:

    1.我需要在一个目录下所有的日志里面进行大量搜索,查找例如某个关键字,或者设备wwn,mac,ip地址,uuid等等。查看关键字在哪个log文档里面,本来想百度下有没有类似的软件,不过找啦半天没找到,都是基于word批量搜索的,需求不符,有知道的帮忙留个言,谢谢!
    2.公司能用开源的系统,绝对不会自己开发系统,关键来啦,领导经常提一些需求,特么本来免费的东东,还特么要求那么多,又不舍得花钱自己开发,苦逼,所以得经常要修改开源系统里面的一些东西,但又不想一点一点查看代码去查找,费时费力,直接web层面抓取一些信息,进行搜索代码位置。

    脚本实现功能:

    • 利用python sys包把一个目录下所有的日志进行路径整理。
    • 利用 python的re正则进行搜索日志。

    脚本信息如下,根据以前初学的脚本改的,写的太烂,嘿嘿

    __author__ = 'l4537'
    #coding:utf-8
    import os,re,sys
    def Sea(file,scr):
        pass
        f = open(file,"r",encoding='UTF-8')
        try:
            data = f.read()
        # with open(file, 'rb') as f:
        #     data = f.read()
            b = re.findall(str(scr),data)
            return b
        except Exception as e:
            return []
    def WWn(wwn):
        a = re.findall(r":",wwn)
        b = []
        b.append(wwn.lower())
        if len(a) == 0:
            k = []
            for i in range(0,16,2):
                z = i + 2
                k.append(wwn[i:z])
            k = ":".join(k).lower()
            b.append(k)
        elif len(a) > 0:
            b.append(re.sub(r'(:)','',wwn).lower())
        return b
    #小写
    def Wwn_re_xiaoxie(s):
        return re.sub(r'()','',s).lower()
    
    def filesearch(dress):
        listdir = []
        listtouch = []
        list = os.listdir(dress)
        for k in list:
            kk = os.stat(k)
            if kk[0] == 16788 or kk[0] == 16895:
                a = os.listdir(str(str(os.getcwd()) + str(os.sep) + str(k)))
                listdir.append(a)
            if kk[0] == 33206 or kk[0] == 33279:
                listtouch.append(k)
    def Dic_sea():
        listdir = []
        for i in os.walk(os.getcwd(), onerror=None, followlinks=False):
            if i[2] != []:
                for k in i[2]:
                    file = str(i[0] + str(os.sep) + k)
                    kk = os.stat(file)
                    if kk[0] == 33206 or kk[0] == 33279:
                        listdir.append(str(i[0] + str(os.sep) + k))
        for i in listdir:
            print(i)
        print("搜索其他请按1:\n\n搜索wwn请按2:\n\n退出请按3;")
        main_1 = input(u"请输入要菜单号:")
        if main_1 == "2":
            zz = str(input(u"请输入要搜素的wwn:"))
            list_wwn = WWn(zz)
            for i in listdir:
                if i == "dome.py":
                    pass
                else:
                    for k in list_wwn:
                        bb = Sea(i,k)
                        if len(bb)> 0:
                            print(i,u"文件存在该字符串")
        if main_1 == "1":
            z = str(input(u"请输入要搜素的字符串:"))
            for i in listdir:
                if i == "dome.py":
                    pass
                else:
                    b = Sea(i,z)
                    if len(b)> 0:
                        print(i,u"文件存在该字符串")
                    else:
                        pass
    Dic_sea()
    

    相关文章

      网友评论

          本文标题:批量文档搜索关键字-基于python脚本的实现

          本文链接:https://www.haomeiwen.com/subject/ibpqlftx.html