python 用正则表达式筛选文本信息的实例
作者:bug_hero 发布时间:2023-04-29 14:12:26
标签:python,正则表达式,筛选,信息
本文主要介绍如何对多个文本进行读取,并采用正则表达式对其中的信息进行筛选,将筛选出来的信息存写到一个新文本。
文本基础操作
打开文件:open(‘文件名',‘打开方式')>>>file=open(r'C:\Users\yuanlei\Desktop\mytxt.txt','w+').为避免报错,在文件名的引号前加个r.
文件打开方式:只读——r或rt,rb为二进制文件;打开文件前清空文件内容——w或wt;在文末写入——a+;
清空内容然后在文末写入——w+;写到文件任意位置——r+;
关闭文件:文件打开运行好后必须要关闭——文件名.close()>>>mytxt.close()
读取文件中的内容:将每行内容,包括换行符,作为一个元素存入数组——lines=file_object.readlines(),但是这样会把换行符也赋进去
去除换行符——new_lines=lines.splitlines()
os包:import os 获取文件地址——os.listdir(父文件地址)
下面附上实现摘要中说的功能的完整代码:
# coding: utf-8
#读取文本中的中英文数据并使用正则表达式将所需数据筛选入到一个新文本中
import re
import os
#zhengze函数对读取到的数据进行筛选,并将筛选好的数据存入数组new_lines
new_lines=[] #申明new_lines数组
def zhengze(f):
regex_str=".*?(l.*?e).*"
for x in f:
new_x = x.splitlines() #注意:splitlines是将传入的字符串去除'\n'之后以数组的形式传出,而不是字符串形式
match_obj=re.match(regex_str,new_x[0])
if match_obj:
new_lines.append(match_obj.group(1))
else:
new_lines.append('no')
return new_lines
#获取指定文件夹下的所有文本的绝对地址,并存入数组file_path
path=r'C:\Users\yuanlei\Desktop\new_file_txt'
file_path=[]
for filename in os.listdir(path): #获取path下所有文件的路径
file_path.append((os.path.join(path,filename)))
print file_path
#对每个文本调用正则函数进行筛选,筛选过后的数据存入数组final
for adress in file_path:
file_object=open(adress)
lines = file_object.readlines( ) #将文本中的内容以数组的形式(每行为一个元素)赋给lines
file_object.close()
final=zhengze(lines)
print final
#将筛选出来的数据写入新文本re_new.txt
file_2=open(r'C:\Users\yuanlei\Desktop\re_new.txt','w+')
for x in final:
file_2.write(x)
file_2.write('\n')
file_2.close()
来源:https://blog.csdn.net/bug_hero/article/details/78378109


猜你喜欢
- 最近一直在做订单类的项目,使用了事务。我们的数据库选用的是MySql,存储引擎选用innoDB,innoDB对事务有着良好的支持。这篇文章我
- 代码如下: 在ie下,貌似要改安全设置中的【对为标记为可安全执行脚本的ActiveX空间初始化并执行】那项 <html> <
- 之前跟一些小伙伴有个讨论:大概就是很多跟数据打交道的朋友都面对过很复杂的excel公式,有时嵌套层数特别多,肉眼观看很容易蒙圈。有了这样的需
- AdobeAdobe公司的标识1982年,40多岁的程序员约翰·沃诺克(John Warnock)和查尔斯·杰斯克(Charles Gesc
- 介绍众所周知,计算机视觉在机器学习和人工智能领域获得了巨大的普及。图像识别技术允许计算机处理比人眼更多的信息,通常更快、更准确,或者只是在人
- 上一篇博文说了 vue3 项目的 toRefs 函数和 toRef 函数,今天就稍微总结一下 vue3 的计算属性,其实学过 vue2 的宝
- 介绍文档解析涉及检查文档中的数据并提取有用的信息。它可以通过自动化减少了大量的手工工作。一种流行的解析策略是将文档转换为图像并使用计算机视觉
- Django测试框架非常简单,首选方法是使用python标准库中的unittest模块。Writing testsDjango的单元测试使用
- 备份多个数据库可以使用如下命令:mysqldump -uroot -p123456 --databases test1 test2 test
- 引言分享一些用Python处理yaml和嵌套数据结构的的一些技巧,首先从修改yaml格式文件的问题出发,演变出了各个解决办法,又从最后的解决
- 链判断运算符(?.)非常好用、常用,搭配Null 判断运算符使用,效果更佳,完美!来,上代码:我们通常获取一个对象多层的属性值时,需要进行多
- 本文对djangoHTML的表单控件中的单选及多选进行介绍,并说明如何进行参数传递。1.HTML中的表单控件:在HTML中表单的书写一般为:
- 一、背景我们日常测试中存在大量重复的造数操作,且流程较长,为了提升测试效率,我们搭建了数据构造平台。平台采用了前端 + 脚本分离的形式,数据
- 一 MySQL Workbench MySQL Workbench提供DBAs和developers一个集成工具环境: 1)数据库设计和建模
- 本文实例为大家分享了Python人脸识别的具体代码,供大家参考,具体内容如下1.利用opencv库sudo apt-get install
- 不知不觉的玩了两年多的MySQL,发现很多人都说MySQL对比Oracle来说,优化器做的比较差,其实某种程度上来说确实是这样,
- having的用法 having子句可以让我们筛选成组后的各种数据,having子句在查询过程中慢于聚合语句(sum,min,max,avg
- 为方便用ipset 来管理防火墙,写了下面Ipset类来对Ip进行管理#!/usr/bin/env python# coding: utf-
- 笔者在网站开发中,采用PHP4.0+MySQL3.23.38建立了多种应用。下面,以一个简单的聊天室设计为例,介绍PHP+MySQL在网页开
- 本文实例讲述了JS实现合并json对象的方法。分享给大家供大家参考,具体如下:一、问题:求json对象合并的方法var a ={"