溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中怎么利用正則表達式篩選文本信息

發(fā)布時間:2021-06-15 15:56:56 來源:億速云 閱讀:153 作者:Leah 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)python中怎么利用正則表達式篩選文本信息,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

文本基礎(chǔ)操作

打開文件:open(‘文件名',‘打開方式')>>>file=open(r'C:\Users\yuanlei\Desktop\mytxt.txt','w+').為避免報錯,在文件名的引號前加個r.

文件打開方式:只讀——r或rt,rb為二進制文件;打開文件前清空文件內(nèi)容——w或wt;在文末寫入——a+;

清空內(nèi)容然后在文末寫入——w+;寫到文件任意位置——r+;

關(guān)閉文件:文件打開運行好后必須要關(guān)閉——文件名.close()>>>mytxt.close()

讀取文件中的內(nèi)容:將每行內(nèi)容,包括換行符,作為一個元素存入數(shù)組——lines=file_object.readlines(),但是這樣會把換行符也賦進去

去除換行符——new_lines=lines.splitlines()

os包:import os 獲取文件地址——os.listdir(父文件地址)

下面附上實現(xiàn)摘要中說的功能的完整代碼:

# coding: utf-8
#讀取文本中的中英文數(shù)據(jù)并使用正則表達式將所需數(shù)據(jù)篩選入到一個新文本中
import re
import os

#zhengze函數(shù)對讀取到的數(shù)據(jù)進行篩選,并將篩選好的數(shù)據(jù)存入數(shù)組new_lines
new_lines=[]    #申明new_lines數(shù)組
def zhengze(f):
 regex_str=".*?(l.*?e).*"
 for x in f:
  new_x = x.splitlines()  #注意:splitlines是將傳入的字符串去除'\n'之后以數(shù)組的形式傳出,而不是字符串形式
  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

#獲取指定文件夾下的所有文本的絕對地址,并存入數(shù)組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

#對每個文本調(diào)用正則函數(shù)進行篩選,篩選過后的數(shù)據(jù)存入數(shù)組final
for adress in file_path:
 file_object=open(adress)
 lines = file_object.readlines( )  #將文本中的內(nèi)容以數(shù)組的形式(每行為一個元素)賦給lines
 file_object.close()
 final=zhengze(lines)
print final

#將篩選出來的數(shù)據(jù)寫入新文本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()

上述就是小編為大家分享的python中怎么利用正則表達式篩選文本信息了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI