python的re模組一些方法 && Tkinter圖形介面設計 && 終止python執行函式 && python讀寫檔案 && python一旦給字串賦值就不能單獨改變某個字元,除非重新給變數賦值
Tkinter圖形介面設計見:https://www.cnblogs.com/pywjh/p/9527828.html#radiobutton
終止python執行函式:
採用sys.exit(0)正常終止程式
python讀寫檔案(python3.0讀寫二進位制檔案後面一定要加b,否則會報錯“write() argument must be str, not bytes”,例如:ab,a+b):
#讀寫二進位制檔案,例如mp3、mp4 film = requests.get(self.vedio_url, headers=self.headers).content with open(self.name+'.mp4', 'a+b') as f: f.write(film)
1、匹配規則
2、re.compile:編譯一個正則表示式,用這個結果去search,match,findall,finditer能夠節省時間
3、re.findall:返回列表,找所有的匹配項
優點:可以匹配到所有滿足條件的匹配項
缺點:但是這個函式不會匹配換行
import re pattern = re.compile(r'\d+.\d*') result = pattern.findall("123.141593, 'bigcat', 232312, 3.15") foritem in result: print(item) #結果 123.141593 232312, 3.15
4、re.search:匹配就返回一個變數,通過group取匹配到的第一個值,不匹配就返回None,group會報錯
優點:可以匹配到換行,函式第三個引數加上re.S
缺點:只能匹配到第一個滿足條件的匹配項
html = '' pattern1 = ',(.*?)#' url_old = re.search(pattern1,html,re.S)
5、re.finditer:返回一個迭代器,所有的結果都在這個迭代器中,需要通過迴圈+group的形式取值,能夠節省記憶體
優點:可以匹配到換行,且能匹配到所有滿足條件的匹配項
ret = re.finditer('\d+','alex83taibai40egon25') for i in ret: print(i.group()) 結果: 83 40 25
6、re.match 方法用於查詢字串的頭部(也可以指定起始位置),它是一次匹配,只要找到了一個匹配的結果就返回,而不是查詢所有匹配的結果。它的一般使用形式如下:
match(string[, pos[, endpos]])
其中,string 是待匹配的字串,pos 和 endpos 是可選引數,指定字串的起始和終點位置,預設值分別是 0 和 len (字串長度)。因此,當你不指定 pos 和 endpos 時,match 方法預設匹配字串的頭部。
當匹配成功時,返回一個 Match 物件,如果沒有匹配上,則返回 None。
ret = re.match('\d+','172sjkhk按實際花費928') print(ret.group()) 結果: 172
>>> import re >>> pattern = re.compile(r'\d+') # 用於匹配至少一個數字 >>> m = pattern.match('one12twothree34four') # 查詢頭部,沒有匹配 >>> print m None >>> m = pattern.match('one12twothree34four', 2, 10) # 從'e'的位置開始匹配,沒有匹配 >>> print m None