Python常用模塊

1.os模塊

os模塊包裝了不同操作系統的通用接口,使用戶在不同操作系統下,可以使用相同的函數接口,返回相同結構的結果。

os.name:返回當前操作系統名稱('posix', 'nt', 'os2', 'mac', 'ce' or 'riscos')

os中定義了一組文件、路徑在不同操作系統中的表現形式參數,如

os.sep(文件夾分隔符,windows中是 \ )

os.extsep(擴展名分隔符,windows中是 . )

os.pathsep(目錄分隔符,windows中是 ; )

os.linesep(換行分隔符,windows中是 \r\n )


os中有大量文件、路徑操作的相關函數,如:

listdir(path):列舉目錄下的所有文件

makedir(path):創建文件夾,注:創建已存在的文件夾將異常

makedirs(path):遞歸式的創建文件夾,注:創建已存在的文件夾將異常

remove(filename):刪除一個文件

rmdir(path):刪除一個文件夾,注:刪除非空的文件夾將異常

removedirs(path):遞歸的刪除文件夾,直到有一級的文件夾非空,注:文件夾路徑不能以'\'結束

rename(src,dst):給文件或文件夾改名(可以改路徑,但是不能覆蓋目標文件)

renames(src,dst):遞歸式的給文件或文件名改名

walk(path):列舉path下的所有文件、文件夾


os中與進程相關的操作,如:

execl(path):運行一個程序來替代當前進程,會阻塞式運行

_exit(n):退出程序

startfile(filename):用與文件關聯的程序運行,關聯程序打開後,立即返回

system(cmd):運行一個程序或命令,會立即返回,並在cmd執行完成後,會返回cmd退出代碼

os.path:在不同的操作系統中調用不同的模塊,是一個可import的模塊,這個模塊中提供很多有用的操作:

abspath(path):返回path的絕對路徑,若path已經是絕對路徑了,則保持。

basename(path):返回path中的文件名。

commonprefix(list):返回list中的統一前綴,用於獲得一組字符串的左起相同的內容

dirname(path):返回path中的文件夾部分,結果不包含'\'

exists(path):文件或文件夾是否存在

getatime(path):文件或文件夾的最後訪問時間,從新紀元到訪問時的秒數

getmtime(path):文件或文件夾的最後修改時間

getctime(path):文件或文件夾的創建時間

getsize(path):文件或文件夾的大小,若是文件夾返回0

isabs(path):返回是否是絕對路徑

isfile(path):返回是否是文件路徑

isdir(path):返回是否是文件夾路徑

islink(path):返回是否是快捷方式

join(path1,path2,...):將path進行組合,若其中有絕對路徑,則之前的path將被刪除

normcase(path):轉換路徑中的間隔符

normpath(path):轉換路徑爲系統可識別的路徑

realpath(path):轉換路徑爲絕對路徑

split(path):將路徑分解爲(文件夾,文件名)

splitext(path):將路徑分解爲(其餘部分,.擴展名),若文件名中沒有擴展名,擴展名部分爲空字符串在操作與系統不支持的對象時,拋出OSError異常。


2.sys模塊

系統信息和方法模塊,提供了很多實用的變量和方法:

argv:命令行參數List,第一個元素是程序本身路徑

builtin_module_names:Python解釋器導入的模塊列表

modules.keys():返回所有已經導入的模塊列表

exc_info():獲取當前正在處理的異常類

exc_type、exc_value、exc_traceback:當前處理的異常詳細信息

executable:Python解釋程序路徑

exit(n):退出程序,正常退出時exit(0)

getwindowsversion():獲取Windows的版本

hexversion:獲取Python解釋程序的版本值,16進制格式如:0x020403F0

version:獲取Python解釋程序的版本信息

maxint:最大的Int值

maxunicode:最大的Unicode值

modules:返回系統導入的模塊字段,key是模塊名,value是模塊

path:返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值

platform:返回操作系統平臺名稱


3.built-in內置模塊


eval(expr[,globals[,locals]]):執行一段代碼,並返回結果

exec(expr[,globals[,locals]]):執行一段代碼

execfile(file[,globals[,locals]]):執行一個文件

filter(func,list):使用函數來過濾list,返回滿足要求的list元素組

getattr(obj,name[,default]):獲取對象的屬性,若沒有該屬性,則返回默認值

setattr(obj,name,value):設置對象的屬性,若沒有該屬性,則異常

hasattr(obj,name):返回對象是否有指定屬性

input([prompt]):提示控制檯輸入,必須輸入常量或變量,若想直接輸入字符串,需要使用引號括起來

raw_input([prompt]):提示控制檯輸入,直接輸入數字或字符串

open(filename,mode):打開文件,mode可以爲:w,r,a,若想同時讀寫,則加上+,若想以二進制讀寫,則加上b

reload(module):再次導入已導入過的模塊

type(obj):返回一個對象的類型

zip(seq1,...):將若干個元組進行合併,長度以元組中的最短的爲準


4.time模塊

這個模塊定義的都是和時間、時鐘、計時相關的內容:

clock():返回第一次調用到當前調用時的計時,是以秒爲單位的浮點數

localtime([t]):返回時間的數組,有9個元素(年,月,日,時,分,秒,星期幾,當年的第幾天,是否夏令時),星期一爲0

mktime(tlist):是localtime的反函數,將一個9元數組轉成一個浮點時間值,後3個元素,系統會自己調整

sleep(n):掛起線程n秒

strftime(fstring[,t]):格式化顯示時間,fstring常用關鍵字:

%a,%A:星期的縮寫,全拼

%b,%B:月份的縮寫,全屏

%c,%x,%X:本地默認表示法(日期時間,日期,時間)

%Y(%y:2位),%m,%d,%H,%M,%S:年月日時分秒

%w:星期,0爲星期天

strptime(string[,format]):將字符串解析爲9元素的時間數組

time():返回當前時間值,浮點數

更高級的用法可以使用datetime模塊,創建其中的date,time對象,可以進行加減操作,得出timedelta對象。


5.re模塊

限定符說明:

".": 匹配任何字符

"^": 匹配開頭

"$": 匹配結尾

"*": 匹配0次或更多次之前的表達式。貪婪時,匹配儘可能多次

"+": 匹配1次或更多次之前的表達式。等價於{1,}

"?": 匹配0次或1次之前的表達式。等價於{0,1}

"*?,+?,??": 非貪婪匹配

"{m,n}": 貪婪式匹配之前的表達式m到n次

"{m,n}?": 非貪婪匹配之前的表達式m到n次

"\": 將下一個字符轉義

[ABC]: 指定一個字符集

[^ABC]: 指定一個不在範圍內的字符集

"A|B": 匹配條件A或條件B

(pattern): 匹配括號內的表達式,並作爲匹配項

(?:pattern): 匹配括號內的表達式,但不作爲匹配項

(?#...): 註釋,忽略

(?=pattern): 預查,若之後的內容匹配表達式,則成立

(?!pattern): 預查,若之後的內容不匹配表達式,則成立

(?Ppattern): 給一個匹配項命名

(?P=name): 匹配與之前命名的匹配項內容相同的部分

如:s='12a34a56'

re.findall('12(?P.).*(?P=xxx)56)', s)

(?P.)匹配到a,則(?P=xxx)的內容也必須爲a時才pp

(?iLmsux): 設置I,L,M,S,U,or X標記

轉義符說明:

\A: 匹配開頭

\Z: 匹配結尾

\b: 匹配開頭或結尾的空字符串,通常是指單詞邊界 ???

\B: 匹配非開頭和結尾的空字符串,通常是指非單詞邊界???

\d: 匹配一個數字。等價於[0-9]

\D: 匹配一個非數字。等價於[^0-9]

\s: 匹配一個空白字符。等價於[ \t\n\r\f\v]

\S: 匹配一個非空白字符。等價於[^ \t\n\r\f\v]

\w: 匹配一個字母數字字符。等價於[a-zA-Z0-9_]

\W: 匹配一個非字母數字字符。等價於[^a-zA-Z0-9_]

\\: 匹配一個反斜槓

\f: 匹配一個換頁符。等價於\x0C 和 \cL

\n: 匹配一個換行符。等價於\x0A 和 \cJ

\r: 匹配一個回車符。等價於\x0D 和 \cM

\t: 匹配一個製表符。等價於\x09 和 \cI

\v: 匹配一個垂直製表符。等價於\x0B 和 \cK

\xHH: 匹配 HH,其中 HH 爲十六進制轉義值

\uHHHH: 匹配 HHHH,其中 HHHH 是一個用四個十六進制數字表示的Unicode字符


常用匹配:

匹配中文字符的正則表達式: [\u4e00-\u9fa5]

匹配雙字節字符(包括漢字在內):[^\x00-\xff]

匹配空行的正則表達式:\n[\s| ]*\r

匹配首尾空格的正則表達式:(^\s*)|(\s*$)

匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匹配網址URL的正則表達式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*\\?\\S*)?$

匹配帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

匹配國內電話號碼:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?

匹配騰訊QQ號:^[1-9]*[1-9][0-9]*$


模塊使用:

match:

search:

sub: 替換

subn: 替換並返回替換的次數

split: 分隔

findall: 查找所有匹配項

compile:

purge:

escape:


可選參數:

I(IGNORECASE): 忽略大小寫

L(LOCALE): 使用\w,\W,\b,\B時依據本地配置???

M(MULTILINE): 多行,"^"匹配每行的開頭,"$"匹配每行的末尾

S(DOTALL): 使"."匹配包含換行符在內的任意字符

X(VERBOSE): 忽略空白處和註釋內容

U(UNICODE): 使\w,\W,\b,\B依靠UNICODE編碼


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章