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‘)
时间: 2024-09-28 16:26:03

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

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

一: os.listdir(path) 把path目录下的所有文件保存在列表中: >>> import os>>> import re>>> path = "/home/popt/fiile">>> print (os.listdir(path))['Temp.conf', 'del2.py', 'ha.conf.bak', 'ha.conf', 'del.py', 'rename.py']>>>

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

在实际的工作中,忘记配置项放在哪个文件中时,可借助命令来查询. eg: 1.grep -r "查询内容"  文件目录    #这样查询出来的包括文件名+内容 grep -r -l   "查询内容"  文件目录   #这样只显示包含内容的文件名 2.find 文件目录  -type f |xargs grep "查询内容";   #也可以达到效果 原文地址:https://www.cnblogs.com/mrice/p/10002407.html

linux 查找指定内容并显示指定行数的命令,显示匹配行和行号

grep -i "desktop-printing-0.19-20.2.el5.x86_64" -n -A 10 install.log linux 查找指定内容并显示指定行数的命令,显示匹配行和行号,布布扣,bubuko.com

win10 C盘根目录无法创建文件,导致我python在c盘建立txt文件被拒绝在d盘不会拒绝

win10c盘只能建立文件夹 无法建立文件 这也是我python在c盘建立txt文件被拒绝在d盘建立txt不被拒绝的原因 但也不是C盘下面所有文件夹不让建立文件,目前只有根目录下,还有一些特殊目录下不让建立文件,而迅雷下载和我的python文件夹等都是让建立的 我对比C和d盘的 之后将c的这个用户改为和d一样权限 发现c盘下面也可以新建文件了参考https://blog.csdn.net/liqfyiyi/article/details/46043771 让win10 C盘根目录能创建文件,但是

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

脚本执行方式:脚本名称  目录的路径 要查找的内容 #根据实际情况自行修改脚本,像目录里面递归查找等等#!/bin/bash num=`ls $1 |tr ' ' '^$'|wc -l` for i in `seq 1 $num` do file_name=`ls $1|tr ' ' '^$'|sed -n $i'p'` # echo $file_name # echo 查看 $1$file_name cat $1/$file_name|grep $2 2>/dev/null if [ $? -

从文件夹里面多个文件里面查找指定内容

脚本执行方式:脚本名称  目录的路径 要查找的内容 #根据实际情况自行修改脚本,像目录里面递归查找等等#!/bin/bash num=`ls $1 |tr ' ' '^$'|wc -l` for i in `seq 1 $num` do file_name=`ls $1|tr ' ' '^$'|sed -n $i'p'` # echo $file_name # echo 查看 $1$file_name cat $1/$file_name|grep $2 2>/dev/null if [ $? -

shell查找指定时间段内的文件

#!/bin/bash#20170905 输入参数格式echo "显示"$1"的备份文件"date_0=$1date_1=`expr $date_0 + 1`date_2=`expr $date_0 + 2` #定义时间段 touch -d $date_0 /tmp/tm-0.file #开始时间touch -d $date_1 /tmp/tm-1.file #结束时间1touch -d $date_2 /tmp/tm-2.file #结束时间2 datadir=/

【Python】Flask之requirements.txt文件记录三方包的版本号

pip freeze > requirements.txt 该命令是将当前Python的虚拟运行环境里面的安装的所有的三方包的版本号记录下来,保存到requirements.txt文件中 pip instal -r requirements.txt 通过该命令可以将该文件中的所有三方包按照相应的版本号下载,不过耗时可能会较长. 原文地址:https://www.cnblogs.com/jums/p/11487933.html

python 项目自动生成 requirements.txt 文件

生成 requirements.txt 文件的目的: 安装 pthon 项目时需要把此项目所有依赖的第三方包安装完成.项目依赖的第三方包统一放到 requirements.txt 文件中即可. 怎么自动生成 requirements.txt 文件? 安装 pipreqs 第三方包:pip install pipreqs 在 setup.py 文件的路径下执行命令:pipreqs . 项目结构如下: 原文地址:https://www.cnblogs.com/ronky/p/9777057.html