Python編程中的常用模塊詳解
一、Time模塊
1.時間戳
time_stamp = time.time() print(time_stamp, type(time_stamp))
2.格式化時間
format_time = time.strftime("%Y-%m-%d %X")
print(format_time, type(format_time))
2024-10-29 16:05:25 <class 'str'>3.結(jié)構(gòu)化時間
print('本地時區(qū)的struct_time:\n{}'.format(time.localtime()))
print('UTC時區(qū)的struct_time:\n{}'.format(time.gmtime()))
?
#本地時區(qū)的struct_time:
time.struct_time(tm_year=2022, tm_mon=8, tm_mday=31, tm_hour=16, tm_min=14, tm_sec=41, tm_wday=2, tm_yday=243, tm_isdst=0)
#UTC時區(qū)的struct_time:
time.struct_time(tm_year=2022, tm_mon=8, tm_mday=31, tm_hour=8, tm_min=14, tm_sec=41, tm_wday=2, tm_yday=243, tm_isdst=0)4.常見用法:計算程序執(zhí)行的時間
# 推遲指定的時間運行,單位為秒start = ti# 推遲指定的時間運行,單位為秒 start = time.time() time.sleep(3) end = time.time() #print(end-start)me.time()time.sleep(3)end = time.time() print(end-start)
二、datetime模塊
該模塊可以看成時間的加減模塊
# 返回當(dāng)前時間 print(datetime.datetime.now()) # 當(dāng)前時間+3天 print(datetime.datetime.now() + datetime.timedelta(3)) # 當(dāng)前時間-3天 print(datetime.datetime.now() + datetime.timedelta(-3)) # 當(dāng)前時間+30分鐘 print(datetime.datetime.now() + datetime.timedelta(minutes=30)) # 時間替換 c_time = datetime.datetime.now() print(c_time.replace(minute=20, hour=5, second=13)) print(datetime.date.fromtimestamp(time.time())) #換算成年月日 2019-03-07
三、random模塊
# 大于0且小于1之間的小數(shù) print(random.random()) # 大于等于1且小于等于3之間的整數(shù) print(random.randint(1, 3)) # 大于1小于3的小數(shù),如1.927109612082716 print(random.uniform(1, 3)) # 列表內(nèi)的任意一個元素,即1或者‘23'或者[4,5] print(random.choice([1, '23', [4, 5]])) 1 #------------smaple-------比較常用在數(shù)據(jù)導(dǎo)入的時候像隨機選擇數(shù)據(jù) # random.sample([], n),列表元素任意n個元素的組合,示例n=2 print(random.sample([1, '23', [4, 5]], 2)) [[4, 5], '23'] lis = [1, 3, 5, 7, 9] # 打亂l的順序,相當(dāng)于"洗牌" random.shuffle(lis) print(lis) [1, 3, 9, 7, 5]
四、os模塊
1.os模塊負(fù)責(zé)程序與操作系統(tǒng)交互
2.os的重點模塊:
os.getcwd()
os.path.abspath('D:\python_base')\
os.path.split('C:\\WINDOWS\\system32\\cmd.exe')
os.path.join('C:\\WINDOWS\\system32\\cmd.exe','hello')
os.path.getsize('C:\\WINDOWS\\system32\\cmd.exe')
3.os常見操作:獲取當(dāng)前路勁的絕對路勁,獲取當(dāng)前路勁的父路徑、父父路勁等
# -*- coding: utf-8 -*- ''' @Time : 2022/09/01 10:25 @Author : Rice @CSDN : C_小米同學(xué) @FileName: test.py ''' import os print(os.path.abspath(__file__)) #返回當(dāng)前文件的絕對路勁(路徑+文件名) print(os.path.dirname(os.path.abspath(__file__))) #返回當(dāng)前文件的父路徑 print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))#返回當(dāng)前文件的父路徑的父路徑 print(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
五、sys模塊
1.sys模塊負(fù)責(zé)程序與python解釋器進行交互
2.sys重點模塊
sys.path:返回模塊的搜索路徑,初始化時使用PYTHONPATH環(huán)境變量的值
sys.version:獲取Python解釋程序的版本信息
sys.exit(n):退出程序,正常退出時exit(0)
3.案例:實現(xiàn)進度條的打印
#=========知識儲備==========
#進度條的效果
[# ]
[## ]
[### ]
[#### ]
#指定寬度
print('[%-15s]' %'#')
print('[%-15s]' %'##')
print('[%-15s]' %'###')
print('[%-15s]' %'####')
#打印%
print('%s%%' %(100)) #第二個%號代表取消第一個%的特殊意義
#可傳參來控制寬度
print('[%%-%ds]' %50) #[%-50s]
print(('[%%-%ds]' %50) %'#')
print(('[%%-%ds]' %50) %'##')
print(('[%%-%ds]' %50) %'###')
#=========實現(xiàn)打印進度條函數(shù)==========
def progress(percent,width=100):
if percent >= 1:
percent=1
for i in range(width + 1):
show_str=('[%%-%ds]' %i) %(int(i * percent) * '#')
print('\r%s %d%%' %(show_str,int(i * percent)),file=sys.stdout,flush=True,end='')
time.sleep(0.1)
?
progress(1)
#=========應(yīng)用==========
data_size=1025
recv_size=0
while recv_size < data_size:
time.sleep(0.1) #模擬數(shù)據(jù)的傳輸延遲
recv_size+=1024 #每次收1024
percent=recv_size/data_size #接收的比例
progress(percent,width=70) #進度條的寬度70六、json和pickle模塊
1.序列化
把對象(變量)從內(nèi)存中變成可存儲或傳輸?shù)倪^程稱之為序列化,在Python中叫pickling,在其他語言中也被稱之為serialization, marshalling, flattening.
2.序列化的優(yōu)點:
1.持久保存狀態(tài):內(nèi)存是無法永久保存數(shù)據(jù)的,當(dāng)程序運行了一段時間,我們斷電或者重啟程序,內(nèi)存中關(guān)于這個程序的之前一段時間的數(shù)據(jù)(有結(jié)構(gòu))都被清空了。但是在斷電或重啟程序之前將程序當(dāng)前內(nèi)存中所有的數(shù)據(jù)都保存下來(保存到文件中),以便于下次程序執(zhí)行能夠從文件中載入之前的數(shù)據(jù),然后繼續(xù)執(zhí)行,這就是序列化。
2.跨平臺數(shù)據(jù)交互:序列化時不僅可以把序列化后的內(nèi)容寫入磁盤,還可以通過網(wǎng)絡(luò)傳輸?shù)絼e的機器上,如果收發(fā)的雙方約定好實用一種序列化的格式,那么便打破了平臺/語言差異化帶來的限制,實現(xiàn)了跨平臺數(shù)據(jù)交互。
3.json格式
Json序列化并不是python獨有的,json序列化在java等語言中也會涉及到,因此使用json序列化能夠達(dá)到跨平臺傳輸數(shù)據(jù)的目的。ison數(shù)據(jù)舉型和python數(shù)據(jù)舉型對應(yīng)關(guān)系表
| Json類型 | Python類型 |
|---|---|
| {} | dict |
| [] | list |
| string" | str |
| 520.13 | int或float |
| true/false | True/False |
| null | None |
到此這篇關(guān)于Python編程之常用模塊的文章就介紹到這了,更多相關(guān)Python常用模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django app配置多個數(shù)據(jù)庫代碼實例
這篇文章主要介紹了Django app配置多個數(shù)據(jù)庫代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12
python3+selenium4實現(xiàn)切換窗口與iframe的方法
在自動化測試過程中,有時后會遇到元素定位方式?jīng)]有問題,但是依舊拋出無法找到元素的異常的問題,有可能是由于當(dāng)前焦點不在指定頁面或iframe導(dǎo)致的,本文就來說明 一下2021-05-05
Django數(shù)據(jù)庫如何在原有表中添加新字段
這篇文章主要介紹了Django數(shù)據(jù)庫如何在原有表中添加新字段問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
Matplotlib可視化之使用pandas和Seaborn繪制精美圖表詳解
這篇文章主要為大家詳細(xì)介紹了Matplotlib可視化之使用pandas和Seaborn繪制精美圖表的相關(guān)內(nèi)容,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2025-12-12
詳解Python是如何實現(xiàn)issubclass的
這篇文章主要介紹了詳解Python是如何實現(xiàn)issubclass的,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Python利用imshow制作自定義漸變填充柱狀圖(colorbar)
這篇文章主要介紹了Python利用imshow制作自定義漸變填充柱狀圖(colorbar),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

