模塊分為三種:
- 內(nèi)置標(biāo)準(zhǔn)模塊
- 自定義模塊
- 開(kāi)源模塊(第三方)
以下主要介紹常用內(nèi)置模塊:
一碗殷、time模塊
time() -- 返回時(shí)間戳
sleep() -- 延遲運(yùn)行單位為s
gmtime() -- 轉(zhuǎn)換時(shí)間戳為時(shí)間元組(時(shí)間對(duì)象)
localtime() -- 轉(zhuǎn)換時(shí)間戳為本地時(shí)間對(duì)象
asctime() -- 將時(shí)間對(duì)象轉(zhuǎn)換為字符串
ctime() -- 將時(shí)間戳轉(zhuǎn)換為字符串
mktime() -- 將本地時(shí)間轉(zhuǎn)換為時(shí)間戳
strftime() -- 將時(shí)間對(duì)象轉(zhuǎn)換為規(guī)范性字符串
strptime() -- 將時(shí)間字符串根據(jù)指定的格式化符轉(zhuǎn)換成數(shù)組形式的時(shí)間
二精绎、datetime模塊
date.today() --返回一個(gè)表示當(dāng)前本地日期的date對(duì)象
date.fromtimestamp(timestamp) --根據(jù)給定的時(shí)間戮,返回一個(gè)date對(duì)象
date.year() --取給定時(shí)間的年
date.month() --取時(shí)間對(duì)象的月
date.day() --取給定時(shí)間的日
date.replace() --生成一個(gè)新的日期對(duì)象锌妻,用參數(shù)指定的年代乃,月,日代替原有對(duì)象中的屬性
三仿粹、sys模塊
用于提供對(duì)解釋器相關(guān)的訪問(wèn)及維護(hù)搁吓,并有很強(qiáng)的交互功能
#常用屬性
sys.argv --傳參,第一個(gè)參數(shù)為腳本名稱即argv[0]
sys.path --模塊搜索路徑
sys.moudule --加載模塊字典
sys.stdin --標(biāo)準(zhǔn)輸入
sys.stdout --標(biāo)準(zhǔn)輸出
sys.stderr --錯(cuò)誤輸出
sys.platform --返回系統(tǒng)平臺(tái)名稱
sys.version --查看python版本
sys.maxsize --最大的Int值
四吭历、os
模塊
用于提供系統(tǒng)級(jí)別的操作
----編寫服務(wù)器腳本時(shí)較為重要, 例如system方法可以執(zhí)行系統(tǒng)命令
----如果是要實(shí)現(xiàn)更高級(jí)的文件操作, 應(yīng)該使用shutil模塊可以操作文件目錄樹, 文件復(fù)制, 創(chuàng)建
1 os.getcwd() 獲取當(dāng)前工作目錄堕仔,即當(dāng)前python腳本工作的目錄路徑
2 os.chdir("dirname") 改變當(dāng)前腳本工作目錄;相當(dāng)于shell下cd
3 os.curdir 返回當(dāng)前目錄: ('.')
4 os.pardir 獲取當(dāng)前目錄的父目錄字符串名:('..')
5 os.makedirs('dir1/dir2') 可生成多層遞歸目錄
6 os.removedirs('dirname1') 若目錄為空晌区,則刪除摩骨,并遞歸到上一級(jí)目錄,如若也為空朗若,則刪除恼五,依此類推
7 os.mkdir('dirname') 生成單級(jí)目錄;相當(dāng)于shell中mkdir dirname
8 os.rmdir('dirname') 刪除單級(jí)空目錄捡偏,若目錄不為空則無(wú)法刪除唤冈,報(bào)錯(cuò);相當(dāng)于shell中rmdir dirname
9 os.listdir('dirname') 列出指定目錄下的所有文件和子目錄银伟,包括隱藏文件你虹,并以列表方式打印
10 os.remove() 刪除一個(gè)文件
11 os.rename("oldname","new") 重命名文件/目錄
12 os.stat('path/filename') 獲取文件/目錄信息
13 os.sep 操作系統(tǒng)特定的路徑分隔符,win下為"\\",Linux下為"/"
14 os.linesep 當(dāng)前平臺(tái)使用的行終止符彤避,win下為"\t\n",Linux下為"\n"
15 os.pathsep 用于分割文件路徑的字符串
16 os.name 字符串指示當(dāng)前使用平臺(tái)傅物。win->'nt'; Linux->'posix'
17 os.system("bash command") 運(yùn)行shell命令,直接顯示
18 os.environ 獲取系統(tǒng)環(huán)境變量
19 os.path.abspath(path) 返回path規(guī)范化的絕對(duì)路徑
20 os.path.split(path) 將path分割成目錄和文件名二元組返回
21 os.path.dirname(path) 返回path的目錄琉预。其實(shí)就是os.path.split(path)的第一個(gè)元素
22 os.path.basename(path) 返回path最后的文件名董饰。如何path以/或\結(jié)尾,那么就會(huì)返回空值。即os.path.split(path)的第二個(gè)元素
23 os.path.exists(path) 如果path存在卒暂,返回True啄栓;如果path不存在,返回False
24 os.path.isabs(path) 如果path是絕對(duì)路徑也祠,返回True
25 os.path.isfile(path) 如果path是一個(gè)存在的文件昙楚,返回True。否則返回False
26 os.path.isdir(path) 如果path是一個(gè)存在的目錄诈嘿,則返回True堪旧。否則返回False
27 os.path.join(path1[, path2[, ...]]) 將多個(gè)路徑組合后返回,第一個(gè)絕對(duì)路徑之前的參數(shù)將被忽略
28 os.path.getatime(path) 返回path所指向的文件或者目錄的最后存取時(shí)間
29 os.path.getmtime(path) 返回path所指向的文件或者目錄的最后修改時(shí)間
五奖亚、random模塊
生成隨機(jī)變量
random.randint(12, 20) 用于生成一個(gè)指定范圍內(nèi)的隨機(jī)符點(diǎn)數(shù)淳梦,兩個(gè)參數(shù)其中一個(gè)是上限,一個(gè)是下限昔字。
random.choice('abcdefg&#%^*f') 隨機(jī)字符/字符串
random.random() 隨機(jī)浮點(diǎn)
random.uniform(1, 10) 限定范圍內(nèi)隨機(jī)浮點(diǎn)數(shù)
六爆袍、math模塊
ceil( ) 取大于等于x的最小的整數(shù)值,如果x是一個(gè)整數(shù)作郭,則返回x
fabs() 返回x的絕對(duì)值
七螃宙、re模塊 --正則表達(dá)式
match:只在第一個(gè)字符串開(kāi)始找,如果沒(méi)有匹配所坯,則不再繼續(xù)找谆扎,
如果第一個(gè)字符串中有,則只輸出第一個(gè)
searh: 在所有內(nèi)容里找芹助,直到找到為止堂湖,但只輸出找到的第一個(gè)
findall:把所有找到的匹配的內(nèi)容,都通過(guò)列表的形式打印出來(lái)c
ompile: 編譯之后再去匹配状土,這樣可以加快匹配的速度
group: 把他匹配的內(nèi)容輸出出來(lái)
groups:分組
七无蜂、json 和 序列化picle 模塊
Json 模塊和pickle都提供了四個(gè)方法: dumps、dump蒙谓、loads斥季、load
#Json
dumps “obj” 數(shù)據(jù)類型 轉(zhuǎn)換為 JSON格式的字符串 只完成了序列化為str,
dump 必須傳文件描述符累驮,將序列化的str保存到文件中,一個(gè)動(dòng)作是將”obj“轉(zhuǎn)換為JSON格式的字符串酣倾,還有一個(gè)動(dòng)作是將字符串寫入到文件中,也就是說(shuō)文件描述符fp是必須要的參數(shù)
loads 將包含str類型的JSON文檔反序列化為一個(gè)python對(duì)象, 只完成了反序列化谤专,
load 只接收文件描述符躁锡,完成了讀取文件和反序列化,將一個(gè)包含JSON格式數(shù)據(jù)的可讀文件飯序列化為一個(gè)python對(duì)象
#pickle
json模塊序列化出來(lái)的是通用格式,其它編程語(yǔ)言都認(rèn)識(shí)置侍,就是普通的字符串映之,
而picle模塊序列化出來(lái)的只有python可以認(rèn)識(shí)拦焚,其他編程語(yǔ)言不認(rèn)識(shí)的,表現(xiàn)為亂碼