常用標準庫

2021-10-01 18:44:05 字數 3238 閱讀 7436

1、常用標準庫

builtins        | 內建函式預設載入     

math | 數學庫

random | 生成隨機數

time | 時間

datetime | 日期和時間

calendar | 日曆

hashlib | 加密演算法

copy | 拷貝

functools | 常用的工具 reduece() wraps()

os | 作業系統介面 與檔案相關的

re | 字串正則匹配

sys | python自身的執行環境 直譯器相關的變數或函式名

multiprocessing | 多程序

threading | 多執行緒

json | 編碼和解碼 json 物件

logging | 記錄日誌,除錯

2、re模組 (regular expression)
import re

obj = re.match(pattern,string,flags)

#pattern是正則規則,string是要匹配的字串,flasgs是一些引數,如忽略大小寫等。

match() 從頭開始匹配,匹配不成功返回none,obj.group()是匹配的內容,obj.span()是匹配 內容的位置,obj.start() 匹配內容的開始下標

fullmatch() 從頭到尾,整個字串都跟pattern進行匹配,匹配不成功返回none,

search() 掃瞄整個字串查詢匹配正則格式的內容,找到返回match物件,可以呼叫.group()

findall() 查詢所有匹配的內容,返回值是乙個列表,列表元素是匹配內容

import re

# 通過re模組的compile函式,返回乙個pattern物件

pattern = re.compile('abc')

# 通過pattern物件進行 match search findall split ...

match_obj = pattern.match('abcdef')

print(match_obj) # 匹配物件

# 匹配物件呼叫group獲取匹配的內容

g = match_obj.group()

print(g)

match_obj = re.fullmatch('abc', 'xyzabcdef', re.i)

print(match_obj)

match_obj = re.search('abc', 'xyzabcdef', re.i)

print(match_obj)

print(match_obj.group()) # 匹配的內容

print(match_obj.span()) # 匹配內容的位置

print(match_obj.start())

s=' i am a boy'

s = re.sub(r'\s+','#',s) #空白用#替換 #i#am#a#good#boy#

s = 'xiaohua=20 xiaoming=21 xiaohong=19'

def change(mobj):

content = mobj.group()

result = str(int(content) + 1)

return result

s = re.sub(r'\d+', change, s)

print(s) #xiaohua=21 xiaoming=22 xiaohong=20

s = 'hello25hi8kitty980world'

result = re.split(r'\d+',s)

print(result) # ['hello', 'hi', 'kitty', 'world']

字元    功能

. 匹配任意1個字元(除了\n)

匹配中列舉的字元

\d 匹配數字,也就是0-9

\d 匹配非數字,也就是匹配不是數字的字元

\s 匹配空白符,也就是 空格\tab

\s 匹配非空白符,\s取反

\w a-z, a-z, 0-9, _

\w \w取反

\b 匹配邊界字元

已知一句話: 'i am a good boy , a handsome boy',提取這句話中的所有單詞

s = 'i am a good boy , a handsome boy'

words = re.findall(r'\b[a-z]+\b', s, re.i)

print(words)

表示數量的規則# 已知一句話: 'i am a good boy , a handsome boy',提取這句話中的所有單詞

s = 'i am a good boy , a handsome boy'

words = re.findall(r'\b[a-z]+\b', s, re.i)

print(words)

* 可有可無

+ 最少一次

? 0 或 1

匹配前乙個字元出現m次

匹配前乙個字元至少出現m次

匹配前乙個字元出現m到n次

分組操作 () 表示的是一組  |  或者關係

s = 'hi linda'

m_obj = re.search('(hi|hello) (jack|tom|lucy|linda)', s, re.i) #

print(m_obj.group()) #hi linda

print(m_obj.group(1)) #hi

print(m_obj.group(2)) #linda

Python常用標準庫 glob

glob 檔案查詢,支援萬用字元 查詢目錄中所有以.sh為字尾的檔案 glob.glob home user sh home user 1.sh home user b.sh home user a.sh home user sum.sh 查詢目錄中出現單個字元並以.sh為字尾的檔案 glob.gl...

Python常用標準庫 json

json是一種輕量級資料交換格式,一般api返回的資料大多是json xml,如果返回json的話,將獲取的資料轉換成字典,方面在程式中處理。json庫經常用的有兩種方法dumps和loads 將字典轉換為json字串 dict type dict json str json.dumps dict ...

Python常用標準庫 time

這個time庫提供了各種操作時間值。方法 描述示例 time.asctime tuple 將乙個時間元組轉換成乙個可讀的24個時間字串 time.asctime time.localtime sat nov 12 01 19 00 2016 time.ctime seconds 字串型別返回當前時間...