[本文出自天外归云的博客园]

脚本功能:在指定的路径下递归搜索,找出指定字符串在文件中出现的位置(行信息)。

用到的python特性:

代码如下:

import os

import sys

__all__ = ['DirPath']

'''

在指定路径下递归查找包含指定字符串的文件

可以指定查找的文件类型category-默认为'.py'

可以指定查找的字符串str-默认为'python'

'''

class DirPath(object):

# 初始化参数查找路径-path

def __init__(self, path):

self.show = self.show()

self.path = path

# 开启func协程的装饰器

def on(func):

def wrapper(*args):

res = func(*args)

next(res)

return res

return wrapper

@on

# 搜索path路径下的python文件

def search(self, target, category):

while True:

path = yield

for entry in os.scandir(path):

if entry.is_file():

if entry.name.endswith(category):

target.send(entry.path)

if entry.is_dir():

self.search(target, category).send(entry.path)

@on

# 找到f文件中包含str的行信息并发送给target

def find_str(self, target, str):

while True:

path = yield

with open(path, "r", encoding='utf-8') as f:

for (name, value) in enumerate(f):

if str in value:

target.send(f"[{path}][{name+1}]:{value}")

@on

# 展示查询结果

def show(self):

while True:

res = yield

print(res)

# 默认在'.py'类型文件中查找字符串-可以指定文件类型category

# 默认查找字符串'python'-可以指定查找字符串str

def code_search(self, category=".py", str="python"):

self.search(self.find_str(self.show, str), category).send(self.path)

if __name__ == '__main__':

path = sys.argv[1]

Dir = DirPath(path)

Dir.code_search(str=sys.argv[2], category=sys.argv[3])

本地运行脚本,搜索结果示例如下:

python之实现循环查看指定路径下的所有文件---os.walk

循环查看指定路径下的所有文件.文件夹,包含隐藏文件注:“.filename” 以点开头的是隐藏文件 import os for cur_path,cur_dirs,cur_files in os.wa ...

Python小代码_15_遍历指定路径下的所有文件和文件夹,并格式化输出文件路径文件名和文件夹名,文件大小,修改时间

遍历指定路径下的所有文件和文件夹,并格式化输出文件路径文件名和文件夹名,文件大小,修改时间 import osimport datetime def print_tree(dir_path): for ...

Python —— 批量替换指定目录下的所有文件中指定字符串

参考:http://blog.csdn.net/zcwfengbingdongguke/article/details/13951527 代码: #!/usr/bin/python import os ...

nodejs 获取指定路径下所有的文件夹名

示例:获取 ./components 下所有的文件夹名称 let components = [] const files = fs.readdirSync('./components') files. ...

封装的方法--读取任何路径下的properties文件中的值

概述:我们在做项目时,经常需要从某个properties文件中读取properties文件中的值.现在我封装了一下方法,直接读取配置文件中的值. 代码如下所示: /** * Created by qi ...

linux下使用grep在当前目录下搜索所有文件中含有的字符串

grep -r yourstr ./ 举例: grep -r sprintf ./ (在当前目录下递归查找含有字符串sprintf的文件)

Linux系统下,在文件中查找某个字符串

在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车. Vim会跳转到第一个匹配.按下n查找下一个,按下N查找上一个. Vim查找支持正则表达式,例如/vim$匹配行尾的&quot ...

【Lua】关于遍历指定路径下所有目录及文件

关于Lua中如何遍历指定文件路径下的所有文件,需要用到Lua的lfs库. 首先创建一个temp.lua文件,用编辑器打开: 要使用lfs库,首先需要把lfs库加载进来 require("lf ...

java通过文件路径读取该路径下的所有文件并将其放入list中

java通过文件路径读取该路径下的所有文件并将其放入list中   java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中.假设指定路径为path,目标集合为fileList,遍 ...

随机推荐

Android Studio:Failed to resolve ***

更换电脑后,也更新了所有的SDK的tool,仍然报错:Failed to resolve  各种jar包,出现这种问题主要是因为在Android studio中默认不允许在线更新,修改方法如下:

二维RMQ

求二维ST表 ;k<=;k++) ;l<=;l++) ;i<=n;i++) ;j<=m;j++){ <<(l-)),m+),tx=min(n+,i+(<&lt ...

NOI 银河英雄传说

并查集水题,记录祖先,大小和深度即可,每次用祖先的大小和深度更新后代的深度. #include #include #include &l ...

python3代码

import urllib.request url="http://mm.taobao.com/json/request_top_list.htm?type=0&page=1&quo ...

64位Win2008&lowbar;VS2012使用ODP&period;NET遭遇问题和解决办法

原文地址:64位Win2008_VS2012使用ODP.NET遭遇问题和解决办法 最近为使用Oracle11G数据库做个快速开发的小程序,使用64位Win2008+Vs2012环境,结果碰壁连环,幸好 ...

Entity Framework连接postgresql,code first

官方介绍地址 http://www.npgsql.org/ef6/index.html 首先创建一个控制台应用程序 ,本例居于.NETFramework,Version=v4.6.1 安装包 Enti ...

codeforces &num;530 D&lpar;Sum in the tree&rpar; &lpar;树上贪心&rpar;

Mitya has a rooted tree with nn vertices indexed from 11 to nn, where the root has index 11. Each ve ...

NOIP模拟 candy

题目描述 一天,小 DD 决定买一些糖果.他决定在两家不同的商店中买糖果,来体验更多的口味. 在每家商店中都有 nn 颗糖果,每颗糖果都有一个权值:愉悦度,代表小 DD 觉得这种糖果有多好吃.其中,第 ...

asp&period;net&plus;mvc&plus;easyui&plus;sqlite 简单用户系统学习之旅(一)—— 手把手教你创建第一个三层架构&plus;mvc的asp&period;net项目

下面开启项目 1. 打开vs2010-文件-新建项目 2. 先创建一个空的解决方案: 选择其他项目类型-visual studio 解决方案-空白解决方案(默认.NET Framework 4),项目 ...

python3查找文件中指定字符串_Python3在指定路径下递归定位文件中出现的字符串...相关推荐

  1. 【Python学习笔记(二)】使用Pyinstaller将不同路径下的py文件打包成exe可执行文件

    ** 使用Pyinstaller将不同路径下的py文件打包成exe可执行文件 ** ** 前言 在Windows环境下需要打包一个python项目成exe可执行文件,共有一个主函数BomSoftwar ...

  2. PHP如何删除一个路径下的所有文件夹和文件教程

    PHP如何删除一个路径下的所有文件夹和文件?等资源,欢迎您收藏本站,我们将为您提供最新的PHP如何删除一个路径下的所有文件夹和文件?资源 PHP如何删除一个路径下的所有文件夹和文件?下面本篇文章给大家 ...

  3. 批处理打开指定路径下的所有文件

    需求:批处理打开指定路径下的所有文件 前提:默认各位同学已经熟悉常用的各种批处理命令,本文仅对涉及到的批处理命令做简单的介绍,有需要进一步学习,可查阅网上其它资料.也可通过CMD命令行窗口通过 [命令 ...

  4. Python碎片化学习教程 @19. 在指定路径下创建.txt文件,并写入内容

    代码功能:在指定路径下创建.txt文件,并写入内容 代码如下: file = open("1.txt", "w", encoding="utf8&qu ...

  5. 安卓加载asset中的json文件_Android中读取asset路径下本地json文件

    最近自己写个小demo,用到了assets文件里面的内容.猛的没想起来怎么使用.就记录下来 移动端开发中,和后台的交互方式不外乎json和xml,由于json的轻量级以及易用性,所以现在的交互协议基本 ...

  6. 获取指定路径下所有PDF文件的总页数

    在开发过程中遇见了这样一个问题,某个文件夹下包含了很多PDF文件,现在要统计这些文件的总页数,当然可以逐个打开,然后将页数累加起来,但是相对来说很麻烦,于是写了一个winform的程序,来实现页数的统 ...

  7. 艺赛旗(RPA)Python:遍历输出某路径下的所有文件和文件夹

    艺赛旗 RPA8.0全新首发免费下载 点击下载 http://www.i-search.com.cn/index.html?from=line1 详细内容请参看艺赛旗官网支持栏目:RPA社区 点击链接 ...

  8. linux防火墙文件路径,防火墙问题 Linux系统 /etc/sysconfig/路径下无iptables文件

    虚拟机新装了一个CentOs7,然后做防火墙配置的时候找不到iptables文件,解决方法如下: 因为默认使用的是firewall作为防火墙,把他停掉装个iptable systemctl stop ...

  9. php 删除文件夹及文件夹,php删除一个路径下的所有文件夹和文件的方法

    php遍历一个文件夹内的所有文件和文件夹,并删除所有文件夹和子文件夹下的所有文件的代码,通过递归方式实现达到清空一个目录的效果,代码简单实用. 也适合在thinkphp中清理缓存,在thinkphp中 ...

最新文章

  1. 解决LaTex中插入Visio画图有多余边框的问题
  2. Chrome控制台用法
  3. HBase性能优化总结
  4. 关于表情符号与UTF-8的探讨
  5. 一个老干部对即将从政的儿子的赠言
  6. JHipster简介
  7. android源码下编译自有工程通用make模板
  8. 数据库常见导入文件方法
  9. html怎么把网址设为首页,怎样让网站设为首页和加入收藏
  10. 一个页面中使用多个iframe导致在ie中假死问题的解决方法
  11. Android中手写签名的实现
  12. Ansible playbook
  13. C语言去除图像的离散区域,Visual C++数字图像实用工程案例精选
  14. Calendar 根据指定日期 获取月的第几周
  15. 从事IT业一个8年老兵转行前的自我总结2——从《易经》说开来
  16. 利用java创建Excel表格步骤
  17. SAP WM初阶之事务代码LS22 - Change Quant
  18. C语言qsort中的cmp函数定义
  19. STM32 cubemx 开发系列文章(一)认识cubemx
  20. 学数据结构堆襸_GBK编码

热门文章

  1. 最后通牒!这所985大学通知近百名硕博研究生限期回校答辩,逾期退学!
  2. 在线GPU分布式实验环境+企业级项目,轻松斩获offer
  3. 如何看待 2020 届校招算法岗「爆炸」的情况?
  4. 有人用这个表情包,被腾讯起诉了!
  5. 张一鸣、王欣、罗永浩三家对垒微信,张小龙如何应对?
  6. 【每日一算法】两数相加
  7. 解决Python通过pip安装报错:(有图)Could not install packages due to an EnvironmentError: HTTPSConnectionPool
  8. 利用python爬取IP地址归属地等信息!
  9. 编程——无序数组中找到最大乘积(python)
  10. Mysql 索引 事物