首页 > 代码库 > grep -rl 'python' /root
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\课程\day5\day5\a‘ g = search(opener(cat(grep(printer(),‘python‘)))) g= search(opener(cat(grep(printer(),‘python‘)))) g.send(x)
grep -rl 'python' /root
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。