【摘要】 本文主要介紹如何對多個文本進行讀取,並采用正則表達式對其中的信息進行篩選,將篩選出來的信息存寫到一個新文本。
打開文件: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(父文件地址)
1 # coding: utf-8 2 #讀取文本中的中英文數據並使用正則表達式將所需數據篩選入到一個新文本中 3 import re 4 import os 5 6 #zhengze函數對讀取到的數據進行篩選,並將篩選好的數據存入數組new_lines 7 new_lines=[] #申明new_lines數組 8 def zhengze(f): 9 regex_str=".*?(l.*?e).*" 10 for x in f: 11 new_x = x.splitlines() #注意:splitlines是將傳入的字符串去除'\n'之后以數組的形式傳出,而不是字符串形式 12 match_obj=re.match(regex_str,new_x[0]) 13 if match_obj: 14 new_lines.append(match_obj.group(1)) 15 else: 16 new_lines.append('no') 17 return new_lines 18 19 #獲取指定文件夾下的所有文本的絕對地址,並存入數組file_path 20 path=r'C:\Users\yuanlei\Desktop\new_file_txt' 21 file_path=[] 22 for filename in os.listdir(path): #獲取path下所有文件的路徑 23 file_path.append((os.path.join(path,filename))) 24 print file_path 25 26 #對每個文本調用正則函數進行篩選,篩選過后的數據存入數組final 27 for adress in file_path: 28 file_object=open(adress) 29 lines = file_object.readlines( ) #將文本中的內容以數組的形式(每行為一個元素)賦給lines 30 file_object.close() 31 final=zhengze(lines) 32 print final 33 34 #將篩選出來的數據寫入新文本re_new.txt 35 file_2=open(r'C:\Users\yuanlei\Desktop\re_new.txt','w+') 36 for x in final: 37 file_2.write(x) 38 file_2.write('\n') 39 file_2.close()