Python3正規表示式清洗Excel文件

2022-08-24 05:57:08 字數 1863 閱讀 4474

本專案中雖然資料量不大,用excel自帶的替換功能也能實現,但是針對上幾千條欄位去匹配資料的話,python就明顯高效的多,現在開始講解:

要清洗的是excel文件中所有欄位的地名,

需要清洗資料:

首先,需要匯入xlrd和re包,前者是用來讀寫excel文件,後者是正規表示式的包

1#

-*- coding:gbk -*-

2import

xlrd

3importre4

5#開啟乙個excel表

6 data = xlrd.open_workbook('

/home/kin/company.xlsx')

78#按順序選擇第5張表(sheet)

9 table = data.sheets()[4]

1011

#迴圈遍歷把表中一列的資料用字串拼接的形式賦值給字串變數「temp」

12 temp = ""

13for x in range(18):14#

get row_value

15 var =table.row_values(x)

16 temp +=var[0] + "|"

171819#

一定要去除最後乙個「|」字元,否則while迴圈時會認為「空值」完全匹配進入死迴圈

20 temp = temp[:-1]

2122

#新建並開啟乙個xlsx文件,「w」是選擇複寫,編譯碼為utf-8

23 file = open("

/home/kin/desktop/z.xlsx

","w

",encoding="

utf-8")

2425

#選擇第二張表

26 table2 = data.sheets()[1]

2728

#編譯正規表示式

29 pt =re.compile(temp)

303132#

可以將num,num2加入迴圈,print檢視num總數,判斷是否執行總數

33 num =0

34 num2 =0

3536

#迴圈遍歷

37for x in range(10000):38#

get row_value

39 var2 =table2.row_values(x)40#

var2[0]讀取每行第一列元素

41while

pt.search(var2[0]):42#

group()匹配正規表示式整體結果

43 a =pt.search(var2[0]).group()44#

將匹配結果用空字串替代

45 var2[0] = var2[0].replace(a,"")46

#將處理完的結果賦值給name

47 name =var2[0]48#

用回車做分隔符寫入

49 file.write(name + "\n"

)50#切記flush()方法必須放在while迴圈區域性,不然結果會將所有運算結果從快取內寫入

51file.flush()

5253

file.close

54

結果:

python3正規表示式

正規表示式,又稱規則表示式。英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式通常被用來檢索 替換那些符合某個模式 規則 的文字。正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元 及這些特定字元的組合,組成乙個...

Python3 正規表示式

常用的匹配模式 正規表示式是乙個特殊的字串行,它能幫助你方便的檢查乙個字串是否與某種模式匹配。re 模組使 python 語言擁有全部的正規表示式功能。re.match函式 re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match 就返回none。re.match...

Python3 正規表示式

正規表示式是乙個特殊的字串行,它能幫助你方便的檢查乙個字串是否與某種模式匹配。python 自1.5版本起增加了re 模組,它提供 perl 風格的正規表示式模式。re 模組使 python 語言擁有全部的正規表示式功能。compile 函式根據乙個模式字串和可選的標誌引數生成乙個正規表示式物件。該...