1.定義
模組:用來從邏輯上組織python**,本質就是.py結尾的python檔案。
包:用來從邏輯上組織模組的,本質就是乙個目錄(必須帶有init.py檔案)__int.py用於標識當前資料夾是乙個包。
2.import本質
匯入模組的本質就是把python檔案解釋一遍
import modelname->modelname.py->modelname.py的路徑->sys.path
匯入包的本質就是執行該包下的init.py檔案
3.內建模組
(1).time和datetime
a.時間戳(timestamp)
b.格式化時間字串
c.元祖(struct_time)
a->c:gmtime(結果為utc時區) localtime(utc+8時區)
c->a:mktime
c->b:strftime(format,time_tuple)
b->c:strptime(string,format)
(2).random
random.randint(x,y)#隨機產生[x,y]之間的數
random.randrange(x,y)#隨機產生[x,y)之間
random.choice()#從(列表or字串or元祖)中隨機抽取乙個
random.sample('str',n)#從str中隨機抽取n個字元
random.random()#隨機浮點數
random.uniform(x,y)#隨機產生x,y中間的浮點數
(3).sys
sys.argv
#命令列引數list,第乙個元素是程式本身路徑
sys.exit(0)#退出
sys.maxint
#最大的int值
sys.path
#返回模組的搜尋路徑,初始化時使用pythonpath環境變數的值
sys.platform
#返回作業系統平台名稱
(4).shutil#檔案的copy、壓縮包
shutil.copyfileobj(src,dst.length)
shutil.copyfile(src,dst)#拷貝檔案
shutil.copymode(src,dst)#僅拷貝許可權。內容、組、使用者均不變
shutil.copystat(src,dst)#拷貝狀態的資訊
shutil.copy(src,dst)#拷貝檔案和許可權
shutil.copy2(src,dst)#拷貝檔案和狀態資訊
shutil.copytree(src,dst,symlinks=false,ignore=nono)#遞迴的去拷貝檔案
shutil.rmtree(file)#遞迴刪除檔案
shutil.move(src,dst)#遞迴的移動檔案
shutil.make_archive(base_name,format,...)#base_name(檔名)、fromat(壓縮包種類)主要是呼叫zipfile和tarfile
(5).hashlib#用於加密相關的操作
import hashlib
m=hashlib.md5()
m.update(b"hello")
print(m.hexdigest())
m=hashlib.sha1()
m.update(b"hello")
print(m.hexdigest())
import hmac
m=hmac.new(b"hello","it`s me"
.encode(encoding="utf-8"))
print(m.hexdigest())
print(m.digest())
(6).json和pickle
json#把資料進行序列化,python在記憶體中的資料型別不能直接寫到檔案(只存字串 or bytes)中去,必須轉成(dump)字串且資料不發生損壞。
#解決不同平台不同語言之間的資料交換
pickle#用於python特有的型別和python的資料型別間進行轉換
import shelve
shelve模組是乙個簡單的k,v將記憶體資料通過檔案持久化的模組,可以持久化任何pickle可支援的python資料格式
4.正規表示式
''
''.' 預設匹配除\n之外的任意乙個字元,若指定falg dotall,則匹配任意字元,包括換行
'^' 匹配字串的開始位置。若設定了regexp物件的multiline屬性,^也匹配「\n」或「\r」之後的位置。
'?' 匹配?號前面的字元一次或0次~
'+' 代表匹配前乙個字元一次或多次
'$' 匹配輸入字串的結束位置
'*' 匹配*號前的字元,0次或多次
'\a' 只從字元開頭開始匹配,\a[0-9]
'\z' 匹配字元結尾,[a-z]\z
'\d' 匹配0-9
'\d' 匹配非數字
'\w' 匹配[a-z,a-z,0-9]
'\w' 匹配非[a-z,a-z,0-9]
'[a-z]' 匹配指定範圍內的任意字元。
'' 最少匹配n次且最多匹配m次
'' 匹配m次
'|' 兩個匹配條件進行邏輯「或」
'(...)' 分組匹配
'\s' 匹配任何不可見字元,包括空格、製表符、換頁符等等。等價於[ \f\n\r\t\v]。
'\s' 匹配任何可見字元。等價於[^ \f\n\r\t\v]。'''
import re
res=re.match("^.+","helloworld123")#從字串頭開始往後匹配
#res=re.search()#整個文字內匹配包含
#res=re.findall("[0-9]","123hjk345kl464")#把所有匹配到的字元放到以列表中的元素返回
#res=re.split("[0-9]","asf1234df23af")#以匹配到的字元當雜湊表分隔符
#res=re.sub(pattern,replace,string,count)#匹配字元並替換,count代表替換次數
res=re.search("(?p[0-9]+)","asdf1234asdf")
print(res.group())
print(res.groupdict())
res=re.search("(?p[0-9]+)(?p[a-za-z]+)","asdf1234asdf")
print(res)
print(res.group())
print(res.groupdict())
res=re.search("(?p[0-9])(?p[0-9])(?p[0-9])","123321199008171021")
print(res.groupdict())
res=re.split("[0-9]+","asf1234df23af")
print(res)
#re.i(re.ignorecase)#忽略大小寫
res=re.search("[a-z]+","adfa",flags=re.ignorecase)
print(res)
#re.s(re.s)#改變.的任意匹配模式,不將\n除外
res=re.search(r".+","\nadf\nadf",flags=re.s)
print(res)
正規表示式,模組
正規表示式 1 9 d 0 9x 1 9 d 0 9x 1 9 d d 0 9x 1 9 d 0 9x 1 9 d 貪婪匹配 貪婪匹配就是盡可能多的匹配 123script 加上?為將貪婪匹配模式轉為非貪婪匹配模式,會匹配盡量短的字串 的用法 是任意字元 是取 0 至 無限長度 是非貪婪模式。何在一...
Linux學習(六) 正規表示式
書上說,正規表示式很重要,但是本人才開始學習,也不知道,到底有什麼重要的作用。在這裡記錄只是為了以後方便查閱。這裡介紹的是用於編寫shell指令碼的正規表示式。首先,我們要先認識基礎的正規表示式的重要的特殊字元的含義。如下表 re字元 含義 舉例 word 表示行首,待搜尋的word字串在行首 gr...
python基礎 學習筆記六 正規表示式
正規表示式是用來匹配字串的工具,我們可以給字串制定乙個規則,一旦符合符合這個規則,就認為 匹配 了。1 d 匹配乙個數字 2 w 匹配乙個字母或數字 3 匹配任意乙個字元 4 表示任意個字元 包括0個 5 表示至少1個字元 6 表示1個或0個字元 7 表示n個字元 8 表示n m個字元 9 s 匹配...