"Python常用模块" 修訂間的差異

從 YTYZX有图有真相的百科
跳到: 導覽搜尋
(创建页面,内容为“urllib模块: urllib.quote(string[,safe]) 对字符串进行编码。参数safe指定了不需要编码的字符 urllib.unquote(string) 对字符串进行解码 ur...”)
(無差異)

於 2020年7月31日 (五) 12:05 的修訂

urllib模塊: urllib.quote(string[,safe]) 對字符串進行編碼。參數safe指定了不需要編碼的字符 urllib.unquote(string) 對字符串進行解碼 urllib.quote_plus(string[,safe]) 與urllib.quote類似,但這個方法用『+『來替換『 『,而quote用『%20『來代替『 『 urllib.unquote_plus(string ) 對字符串進行解碼 urllib.urlencode(query[,doseq]) 將dict或者包含兩個元素的元組列錶轉換成url參數。 例如 字典{『name『:『wklken『,『pwd『:『123『}將被轉換為」name=wklken&pwd=123″ urllib.pathname2url(path) 將本地路徑轉換成url路徑 urllib.url2pathname(path) 將url路徑轉換成本地路徑 urllib.urlretrieve(url[,filename[,reporthook[,data]]]) 下載遠程數據到本地 filename:指定保存到本地的路徑(若未指定該,urllib生成一個臨時文件保存數據) reporthook:回調函數,當連接上服務器、以及相應的數據塊傳輸完畢的時候會觸發該回調 data:指post到服務器的數據 rulrs = urllib.urlopen(url[,data[,proxies]]) 抓取網頁信息,[data]post數據到Url,proxies設置的代理 urlrs.readline() 跟文件對象使用一樣 urlrs.readlines() 跟文件對象使用一樣 urlrs.fileno() 跟文件對象使用一樣 urlrs.close() 跟文件對象使用一樣 urlrs.info() 返回一個httplib.HTTPMessage對象,表示遠程服務器返回的頭信息 urlrs.getcode() 獲取請求返回狀態HTTP狀態碼 urlrs.geturl() 返回請求的URL re模塊: 一.常用正則表達式符號和語法: '.' 匹配所有字符串,除\n以外 『-』 表示範圍[0-9] '*' 匹配前面的子表達式零次或多次。要匹配 * 字符,請使用 \*。 '+' 匹配前面的子表達式一次或多次。要匹配 + 字符,請使用 \+ '^' 匹配字符串開頭 『$』 匹配字符串結尾 re '\' 轉義字符, 使後一個字符改變原來的意思,如果字符串中有字符*需要匹配,可以\*或者字符集[*] re.findall(r'3\*','3*ds')結['3*'] '*' 匹配前面的字符0次或多次 re.findall("ab*","cabc3abcbbac")結果:['ab', 'ab', 'a'] 『?』 匹配前一個字符串0次或1次 re.findall('ab?','abcabcabcadf')結果['ab', 'ab', 'ab', 'a'] '{m}' 匹配前一個字符m次 re.findall('cb{1}','bchbchcbfbcbb')結果['cb', 'cb'] '{n,m}' 匹配前一個字符n到m次 re.findall('cb{2,3}','bchbchcbfbcbb')結果['cbb'] '\d' 匹配數字,等於[0-9] re.findall('\d','電話:10086')結果['1', '0', '0', '8', '6'] '\D' 匹配非數字,等於[^0-9] re.findall('\D','電話:10086')結果['電', '話', ':'] '\w' 匹配字母和數字,等於[A-Za-z0-9] re.findall('\w','alex123,./;;;')結果['a', 'l', 'e', 'x', '1', '2', '3'] '\W' 匹配非英文字母和數字,等於[^A-Za-z0-9] re.findall('\W','alex123,./;;;')結果[',', '.', '/', ';', ';', ';'] '\s' 匹配空白字符 re.findall('\s','3*ds \t\n')結果[' ', '\t', '\n'] '\S' 匹配非空白字符 re.findall('\s','3*ds \t\n')結果['3', '*', 'd', 's'] '\A' 匹配字符串開頭 '\Z' 匹配字符串結尾 '\b' 匹配單詞的詞首和詞尾,單詞被定義為一個字母數字序列,因此詞尾是用空白符或非字母數字符來表示的 '\B' 與\b相反,只在當前位置不在單詞邊界時匹配 '(?P<name>...)' 分組,除了原有編號外在指定一個額外的別名 re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{8})","371481199306143242").groupdict("city") 結果{'province': '3714', 'city': '81', 'birthday': '19930614'} [] 是定義匹配的字符範圍。比如 [a-zA-Z0-9] 表示相應位置的字符要匹配英文字符和數字。[\s*]表示空格或者*號。 二.常用的re函數: 方法/屬性 作用 re.match(pattern, string, flags=0) 從字符串的起始位置匹配,如果起始位置匹配不成功的話,match()就返回none re.search(pattern, string, flags=0) 掃描整個字符串並返回第一個成功的匹配 re.findall(pattern, string, flags=0) 找到RE匹配的所有字符串,並把他們作為一個列表返回 re.finditer(pattern, string, flags=0) 找到RE匹配的所有字符串,並把他們作為一個疊代器返回 re.sub(pattern, repl, string, count=0, flags=0) 替換匹配到的字符串 math模塊 ceil:取大於等於x的最小的整數值,如果x是一個整數,則返回x copysign:把y的正負號加到x前面,可以使用0 cos:求x的餘弦,x必須是弧度 degrees:把x從弧度轉換成角度 e:表示一個常量 exp:返回math.e,也就是2.71828的x次方 expm1:返回math.e的x(其值為2.71828)次方的值減1 fabs:返回x的絕對值 factorial:取x的階乘的值 floor:取小於等於x的最大的整數值,如果x是一個整數,則返回自身 fmod:得到x/y的餘數,其值是一個浮點數 frexp:返回一個元組(m,e),其計算方式為:x分別除0.5和1,得到一個值的範圍 fsum:對疊代器里的每個元素進行求和操作 gcd:返回x和y的最大公約數 hypot:如果x是不是無窮大的數字,則返回True,否則返回False isfinite:如果x是正無窮大或負無窮大,則返回True,否則返回False isinf:如果x是正無窮大或負無窮大,則返回True,否則返回False isnan:如果x不是數字True,否則返回False ldexp:返回x*(2**i)的值 log:返回x的自然對數,默認以e為基數,base參數給定時,將x的對數返回給定的base,計算式為:log(x)/log(base) log10:返回x的以10為底的對數 log1p:返回x+1的自然對數(基數為e)的值 log2:返回x的基2對數 modf:返回由x的小數部分和整數部分組成的元組 pi:數字常量,圓周率 pow:返回x的y次方,即x**y radians:把角度x轉換成弧度 sin:求x(x為弧度)的正弦值 sqrt:求x的平方根 tan:返回x(x為弧度)的正切值 trunc:返回x的整數部分