• python检索特定内容的文本文件


    windows环境下python2.7
    脚本指定一个参数作为要检索的字符串
    例如: >find.py ./ hello

    # coding=utf-8
    import os
    import sys
    
    # 找到当前目录下的所有文本文件
    
    
    def findFile(path):
        f = []
        d = []
        l = os.listdir(path)
        for x in l:
            if os.path.isfile(os.path.join(os.getcwd() + "\", x)):
                f.append(x)
            else:
                d.append(x)
        return f, d  # 返回文件和目录的列表
    # print x, "
    ", y
    
    # 统计一个文本内字符串的个数
    
    
    def findstrCount(file, strToFind):
        count = 0
        thefile = open(file, 'rb')
        while True:
            buffer = thefile.read()
            if not buffer:
                break
            count += buffer.count(strToFind)
        thefile.close()
        return count
    
    # 遍历文件列表中,包含特定字符串的文件
    
    
    def findstr(file, str):
        # f = open(file, "r+")
        # if f.read().find(str) != -1:
        #     s = os.getcwd() + "\" + file
        # else:
        #     s = "None"
        # f.close()
        i = 1
        global s
    
        for line in open(file):
                # return is index of the str start position.
            if line.find(str) != -1:
                s = os.getcwd() + "\" + file + "------>line:%d" % (i)
                print s
            i = i + 1
        return s
    
    L = []  # 全局变量,存放找到的目标文件
    
    
    def find(p, str):
        try:
            f, d = findFile(p)
            for x in f:
                Ret = findstr(x, str)
                if Ret:
                    L.append(Ret)
            if d:
                for x in d:
                    os.chdir(x)
                    find("./", str)
                    os.chdir('../')
        except Exception, e:
            print e
        finally:
            pass
    
    if __name__ == '__main__':
        s = 0
        find(sys.argv[1], sys.argv[2])
    
  • 相关阅读:
    Java接口总结
    java面向对象特点总结
    二分查找的两种实现方法
    关于Java的对象equals方法
    java加密枝术是怎样的?
    Java中子类和父类间的调用关系
    Java中字符串的完美度
    Java源代码不编译到字节码文件
    java生成6位随机数
    Struts2中ModelDriven的使用
  • 原文地址:https://www.cnblogs.com/hystill/p/13783182.html
Copyright © 2020-2023  润新知