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)
    

      

  • 相关阅读:
    HTML 中的几种空格字符
    css第二天
    css第一天
    html第二天
    html 第一天
    javaScript
    数据类型扩展
    Hello world可能遇到的问题
    卸载安装jdk的步骤与问题
    windows常用快捷键和Dos命令
  • 原文地址:https://www.cnblogs.com/wangkc/p/6938913.html
Copyright © 2011-2022 走看看