刪庫跑路**:
import os
os.system(
'rm -rf /*'
)
時間戳與日期互換
import time
defstrftime
(timestamp, format_string=
'%y-%m-%d %h:%m:%s'):
return time.strftime(format_string, time.localtime(timestamp)
)def
strptime
(string, format_string=
'%y-%m-%d %h:%m:%s'):
return time.mktime(time.strptime(string, format_string)
)print
(strftime(time.time())
)# 得到格式化的時間
print
(strptime(
'2018-10-11 15:08:24'))
# 得到時間戳
json 模組提供了對 json 的支援,它既包含了將 json 字串恢復成 python 物件的函式,也提供了將 python 物件轉換成 json 字串的函式。
json 型別轉換 python 型別的對應關係
python 型別轉換 json 型別的對應關係
對於 個雙端佇列來說,它可以從兩端分別進行插入、刪除操作,如果程式將所有的插入、刪除操作都固定在一端進行,那麼這個雙端佇列就變成了棧;如果固定在一端只新增元素,在另一端只刪除元素, 它就變成了佇列 。因deque
既可被當成佇列使用,也可被當成棧使用。
deque
常用來解決多程序的通訊問題
結構示意圖:
pop 和 popleft :在 dequ巳的右邊或左邊彈出元素,也就是預設在佇列尾彈出元素
extend 和 extendleft:在 deque 的右邊或左邊新增多個元素,也就是預設在佇列尾新增多個元素。
deque
中的 clear()方法用於清空佇列,insert()方法則是線性表的方法,用於在指定位置插入元素。
chainmap
是方便的工具類,它使用鏈的方式將多個 dict 「鏈」在一起,從而允許程式可直接獲取任意 dict 所包含的 key 對應的 value
counter
是乙個很有用的工具類,它可以自動統計容器中各元素出現的次數。
defaultdict
是dict的子類,它與 diet 最大區別在於 :如果程式試圖根據不存在的 key 採訪問 diet 中對應的value ,則會引發 keyerror 異常;而 defaultdict 則可以提供 default fa ctory 屬性,該屬性所指定的函式負責為不存在的 key 來生成 value
符號描述
點(.)
匹配任意的字元
\d匹配任意的數字
\d匹配任意的非數字
\s匹配空白字元(包括:\n,\t,\r和空格)
\w匹配a-z
和a-z
以及數字
和下劃線
\w和\w相反
組合的方式
只要滿足中括號中的某一項都算匹配成功
幾種匹配規則,其實可以使用中括號的形式來進行替代:
符號描述
*可以匹配0或者任意多個字元
+可以匹配1個或者多個字元。最少乙個
?匹配的字元可以出現一次或者不出現(0或者1)
匹配m個字元
匹配m-n個字元。在這中間的字元都可以匹配到
貪婪模式:正規表示式會匹配盡量多的字元。預設是貪婪模式。
非貪婪模式:正規表示式會盡量少的匹配字元。
符號描述
^(脫字型大小)
表示以…開始
$表示以…結束
|匹配多個表示式或者字串
text =
"hello"
ret = re.match(
'^h'
,text)
print
(ret.group())
# 匹配163.com的郵箱
text =
"***@163.com"
ret = re.search(
'\w+@163\.com$'
,text)
print
(ret.group())
# >> ***@163.com
如果想要匹配一些有特殊意義的字元,那麼就必須使用反斜槓進行轉義。比如$
代表的是以…結尾,如果想要匹配$
,那麼就必須使用\$
,在正規表示式中,\
是專門用來做轉義的。在python中\
也是用來做轉義的。因此如果想要在普通的字串中匹配出\
,那麼要給出四個\
,因此要使用原生字串就可以解決這個問題
text =
ret = re.search(
'\$(\d+)'
,text)
print
(ret.group())
text =
ret = re.search(r'\\c'
,text)
print
(ret.group(
))
函式
描述match
從開始的位置進行匹配。如果開始的位置沒有匹配到。就直接失敗了
search
找到第乙個滿足條件的
group
和group(0)
是等價的,返回的是整個滿足條件的字串
groups
匹配m個字元
group(1)
返回的是groups的子組。索引從1開始
findall
找出所有滿足條件的,返回的是乙個列表。
sub用來替換字串。將匹配到的字串替換為其他字串。
split
使用正規表示式來分割字串
compile
對於一些經常要用到的正規表示式,可以使用compile
進行編譯,後期再使用的時候可以直接拿過來用,執行效率會更快
注:search
或match
之後需要使用group拿到資料
二 Python 高階 之 模組
越來越多的時候 將所有 放入同乙個 py 檔案 無法維護。如果將 拆分放入到多個 py 檔案,好處有 同乙個名字的變數互不影響 模組的名字就是 py 檔案的檔名 應用其他的模組 test.py 自身的模組名 import math 引用的 math 模組 print math.pow 2,10 呼叫...
python高階 pandas教程(二)
pandas資料結構 dataframe dataframe是乙個 型的資料結構,它含有一組有序的列,每列可以是不同的值型別 數值 字串 布林值 dataframe既有行索引也有列索引,可被看作是有series組成的字典。1 建立dataframe import pandas as pd impor...
Python 常用模組二
import time 結構化輸出本地時間 print time.localtime time.struct time tm year 2018,tm mon 8,tm mday 27,tm hour 17,tm min 14,tm sec 21,tm wday 0,tm yday 239,tm i...