python 查找指定内容的txt文件
程序设计思路: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文件的更多相关文章
- python查找指定目录下所有文件,以及改文件名的方法
一: os.listdir(path) 把path目录下的所有文件保存在列表中: >>> import os>>> import re>>> pa ...
- Linux 查找指定内容在哪个文件中
在实际的工作中,忘记配置项放在哪个文件中时,可借助命令来查询. eg: 1.grep -r "查询内容" 文件目录 #这样查询出来的包括文件名+内容 grep -r -l ...
- 在一个exe文件中查找指定内容,找到则返回起始位置, 否则返回0
//在一个exe文件中查找指定内容,找到则返回起始位置, 否则返回0//如果某字符串, 直接传入字符串进来//如果要查找16进制,则用如下格式传参进来: #$1A#$2A#$3A function F ...
- python glob 用通配符查找指定目录中的文件 - 开源中国社区
python glob 用通配符查找指定目录中的文件 - 开源中国社区 python glob 用通配符查找指定目录中的文件
- File操作-将数据库里的数据写入到指定路径的txt文件里
package com.Cristin.File;//将数据库里的数据写入到指定路径的txt文件里 import java.io.File;import java.io.FileOutputStrea ...
- 初识TypeScript:查找指定路径下的文件按类型生成json
如果开发过node.js的话应该对js(javascript)非常熟悉,TypeScript(以下简称ts)是js的超集. 下面是ts的官网: https://www.tslang.cn/ 1.环境配 ...
- python_自动查找指定目录下的文件或目录的方法
代码如下 import os def find_file(search_path, file_type="file", filename=None, file_startswith ...
- python实现指定目录下批量文件的单词计数:并发版本
在 文章 <python实现指定目录下批量文件的单词计数:串行版本>中, 总体思路是: A. 一次性获取指定目录下的所有符合条件的文件 -> B. 一次性获取所有文件的所有文件行 - ...
- Shell实例----------从文件夹里面多个文件里面查找指定内容
脚本执行方式:脚本名称 目录的路径 要查找的内容 #!/bin/bash num=`ls $1 |tr ' ' '^$'|wc -l` for i in `seq 1 $num` do file_n ...
随机推荐
- JS问题汇总
1.Q:$(this)在js中失效,无法获取当前元素 A:function()在被调用时this是指向window的,如果要想指向被点击的元素,一般是将this作为参数传入,例如: <div ...
- [转自天涯]ISO27001与ISO20000的关系心得
“获得认证,就能得到政府的补助,能将对手甩掉.”这是很多管理者的一种想法.但是关于ISO27001与 ISO20000的关系问题很多人都不是很清楚.湖南冉达专家表示想解决这个主要要从三个方面进行分析: ...
- How to use groovy script on jenkins
1. Install groovy plugin 2. Add a step of groovy. (normal & systerm) 3. Execute groovy script im ...
- 浅谈iOS开发中方法延迟执行的几种方式
Method1. performSelector方法 Method2. NSTimer定时器 Method3. NSThread线程的sleep Method4. GCD 公用延迟执行方法 - (vo ...
- 关于(object sender, EventArgs e)
sender是事件源 就是指发起这个事件的对象(控件)//表示触发事件的那个控件比如说你按下按钮,那么sender就是按钮 又如:textboxchange,sender就是该textbox,在事 ...
- [1]IP地址查询
今天起开始玩百度APIStore里面的免费API.以前用过的有12306的:数据.接口,有时间整理出来,12306的有点乱就是了.还有扇贝以及有道的API,之前用在留言板里自动翻译,公司用过百度地图以 ...
- notepad++快捷键大全
Ctrl+C 复制 Ctrl+X 剪切 Ctrl+V 粘贴 Ctrl+Z 撤消 Ctrl+Y 恢复 Ctrl+A 全选 Ctrl+F 键查找对话框启动 Ctrl+H 查找/替换对话框 Ctrl+D 复 ...
- 使用"关键词"来整理自己的知识库
以前一直使用MyBase作为整理知识的工具,但是用到后来发现,当整理的知识越来越多时,树形目录的节点个数就会变得越来越庞大,层次越来越深,反而很难定位要查看或编辑的知识.最近发现使用"关键字 ...
- 【转载】JMeter学习(三十六)发送HTTPS请求
Jmeter一般来说是压力测试的利器,最近想尝试jmeter和BeanShell进行接口测试.由于在云阅读接口测试的过程中需要进行登录操作,而登录请求是HTTPS协议.这就需要对jmeter进行设置. ...
- Java提高篇——设计模式
设计模式简介 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用.设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案.这些解决方案是众多软 ...