zoukankan      html  css  js  c++  java
  • grep -rl 'python' /root

    # grep -rl 'python' /root  搜索root目录下文件内容包含python的文件名路径
    import os
    
    def init(func):
        def wrapper(*args,**kwargs):
            res = func(*args,**kwargs)
            next(res)
            return res
        return wrapper
    
    @init
    def search(target):
        while True:
            search_path = yield
            g=os.walk(search_path)
            for par_dir,_,files in g:
                for file in files:
                    file_abs_path = r'%s\%s' % (par_dir,file)
                    target.send(file_abs_path)
    
    
    @init
    def opener(target):
        while True:
            file_abs_path = yield
            with open(file_abs_path,'r',encoding='utf-8') as f:
                target.send((file_abs_path,f))
    
    
    @init
    def cat(target):
        while True:
            file_abs_path,f = yield
            for line in f:
                tag =target.send((file_abs_path,line))   #注意:对于需要传两个yield的,在send时需要将这两个值放在一个元组中传递(())
                if tag:
                    break
    
    @init
    def grep(target,pattern):
        tag = False
        while True:
            file_abs_path,line = yield tag
            tag = False
            if pattern in line:
                tag = True
                target.send(file_abs_path)
    
    @init
    def printer():
        while True:
            file_abs_path = yield
            print(file_abs_path)
    
    #调用
    x = r'D:Python_OldBoy课程day5day5a'
    g = search(opener(cat(grep(printer(),'python'))))
    g=  search(opener(cat(grep(printer(),'python'))))
    g.send(x)
    

      

  • 相关阅读:
    mybatis入门-1
    try-with-resources 在捕获异常之后自动释放资源 try(){}
    mybatis配置logback
    使用原生的jdbc连接数据库进行查询
    java中的反射
    ajax实现搜索自动补全
    java IO-1 File 2019-07-24
    VMware历史版本
    Centos8.3-NIS
    用户管理
  • 原文地址:https://www.cnblogs.com/wangkc/p/6938913.html
Copyright © 2011-2022 走看看