python 查找指定内容的txt文件

时间:2021-01-07 12:25:03
程序设计思路:1. 利用os.walk()找出所有的文件;2.利用正则找到指定后缀的文件;3.找到需要的txt文件后,通过open().readlines()读取文件中每行数据;4.读取后,保存正则匹配到数据的文件;5.你懂的。
#!/usr/bin/env python
#coding:utf8 import os
import re regtxt = r'.+?\.txt' #扫描对象为txt文件.
regcontent = r'what is your name' #列出内容含有'what is your name'的文件 class FileException(Exception):
pass def getdirlist(filepath):
"""获取目录下所有的文件.""" txtlist = [] #文件集合.
txtre = re.compile(regtxt)
needfile = [] #存放结果.
for parent, listdir, listfile in os.walk(filepath):
for files in listfile:
#获取所有文件.
istxt = re.findall(txtre, files)
filecontext = os.path.join(parent, files)
#获取非空的文件.
if istxt :
txtlist.append(filecontext)
#将所有的数据存放到needfile中.
needfile.append(readfile(filecontext)) if needfile == []:
raise FileException("no file can be find!")
else:
validatedata = getvalidata(needfile)
print validatedata
print 'total file %s , validate file %s.' %(len(txtlist),len(validatedata)) def getvalidata(filelist=[]):
"""过滤集合中空的元素.""" valifile = []
for fp in filelist:
if fp != None:
valifile.append(fp)
return valifile def readfile(filepath):
"""通过正则匹配文本中内容,并返回文本.""" flag = False
contentre = re.compile(regcontent)
fp = open(filepath, 'a+')
lines = fp.readlines()
flines = len(lines)
#逐行匹配数据.
for i in range(flines):
iscontent = re.findall(contentre, lines[i])
if iscontent:
fp.close()
return filepath if __name__ == "__main__":
getdirlist('C:\python27')

python 查找指定内容的txt文件的更多相关文章

  1. python查找指定目录下所有文件,以及改文件名的方法

    一: os.listdir(path) 把path目录下的所有文件保存在列表中: >>> import os>>> import re>>> pa ...

  2. Linux 查找指定内容在哪个文件中

    在实际的工作中,忘记配置项放在哪个文件中时,可借助命令来查询. eg: 1.grep -r "查询内容"  文件目录    #这样查询出来的包括文件名+内容 grep -r -l ...

  3. 在一个exe文件中查找指定内容,找到则返回起始位置, 否则返回0

    //在一个exe文件中查找指定内容,找到则返回起始位置, 否则返回0//如果某字符串, 直接传入字符串进来//如果要查找16进制,则用如下格式传参进来: #$1A#$2A#$3A function F ...

  4. python glob 用通配符查找指定目录中的文件 - 开源中国社区

    python glob 用通配符查找指定目录中的文件 - 开源中国社区 python glob 用通配符查找指定目录中的文件

  5. File操作-将数据库里的数据写入到指定路径的txt文件里

    package com.Cristin.File;//将数据库里的数据写入到指定路径的txt文件里 import java.io.File;import java.io.FileOutputStrea ...

  6. 初识TypeScript:查找指定路径下的文件按类型生成json

    如果开发过node.js的话应该对js(javascript)非常熟悉,TypeScript(以下简称ts)是js的超集. 下面是ts的官网: https://www.tslang.cn/ 1.环境配 ...

  7. python_自动查找指定目录下的文件或目录的方法

    代码如下 import os def find_file(search_path, file_type="file", filename=None, file_startswith ...

  8. python实现指定目录下批量文件的单词计数:并发版本

    在 文章 <python实现指定目录下批量文件的单词计数:串行版本>中, 总体思路是: A. 一次性获取指定目录下的所有符合条件的文件 -> B. 一次性获取所有文件的所有文件行 - ...

  9. Shell实例----------从文件夹里面多个文件里面查找指定内容

    脚本执行方式:脚本名称  目录的路径 要查找的内容 #!/bin/bash num=`ls $1 |tr ' ' '^$'|wc -l` for i in `seq 1 $num` do file_n ...

随机推荐

  1. CentOS6&period;3编译安装Memcached集群分布式缓存代理Magent-0&period;6出错汇总

    参考文章:Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解,搭建Magent,在编译的过程中会出现很多错误: #编译安装安装magent到 /usr/local/mage ...

  2. 新手浅谈C&num;关于abstract和interface

    abstract:抽象类,是对某一类对象的抽象,继承抽象类的类和抽象类是属于关系 interface:接口,可以说是一种规范,继承接口的类表达则是,我继承了这个接口,我能做什么 举个常用的例子:抽象一 ...

  3. UIAlertController基本使用

      从ios8之后,系统的弹框 UIAlertView 与 UIActionSheet 两个并在一了起, 使用了一个新的控制器叫 UIAlertController UIAlertController ...

  4. Chrome下的语音控制框架MyVoix&period;js使用篇(四)

    在上一篇博文中,我为大家介绍了myvoix.js中的smart learning模块,以及何如使用该功能.(myvoix.js的源码地址会在每一篇文章末尾放出) 文本将拓展 Chrome下的语音控制框 ...

  5. Roman to Integer &amp&semi;&amp&semi; Integer to Roman 解答

    Roman Numeral Chart V:5 X:10 L:50 C:100 D:500 M:1000 规则: 1. 重复次数表示该数的倍数2. 右加左减:较大的罗马数字右边记上较小的罗马数字,表示 ...

  6. (原)编译caffe时提示未定义的引用(undefined reference to)

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5864715.html 参考网址: https://github.com/BVLC/caffe/issu ...

  7. DDD实战进阶第一波&lpar;二&rpar;:开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架一)

    要实现软件设计.软件开发在一个统一的思想.统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束. 虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍 ...

  8. pycharm的list中append的应用

    li = [11,22,33,44] li.append(5) print(li) #输出结果 [11,22,33,44,5] #后面可加字母,列表等字符串

  9. 微信小程序海报生成功能

    如果是H5页面的话给大家推荐一款不错的插件html2canvas,这个插件可以将html元素转为canvas并一键生成png图片,但是本文的重点是在小程序上如何实现生成图片的功能.因为小程序没有DOM ...

  10. echo 变量不加引号出错

    result=`ps aux  | grep “×××” |grep -v “×××” start_time=$(echo $result | awk '{print $9}') 问题:发现输出是 s ...