本文主要介紹如何對多個文本進行讀取,并采用正則表達式對其中的信息進行篩選,將篩選出來的信息存寫到一個新文本。
文本基礎操作
打開文件: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( ) #將文本中的內容以數組的形式(每行為一個元素)賦給lines file_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()
以上這篇python 用正則表達式篩選文本信息的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答