您的位置:首页 > 编程语言 > Python开发

python-用正则表达式筛选文本信息

2017-10-28 18:37 204 查看
【摘要】  本文主要介绍如何对多个文本进行读取,并采用正则表达式对其中的信息进行筛选,将筛选出来的信息存写到一个新文本。文本基础操作打开文件: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 reimport os#zhengze函数对读取到的数据进行筛选,并将筛选好的数据存入数组new_linesnew_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_pathpath=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#对每个文本调用正则函数进行筛选,筛选过后的数据存入数组finalfor adress in file_path:file_object=open(adress)lines = file_object.readlines( ) #将文本中的内容以数组的形式(每行为一个元素)赋给linesfile_object.close()final=zhengze(lines)print final#将筛选出来的数据写入新文本re_new.txtfile_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()

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息