Python模塊相關知識點小結
本文實例講述了Python模塊相關知識點。分享給大家供大家參考,具體如下:
1.模塊:
定義:用來從邏輯上組織python代碼(變量,函數(shù),類,邏輯:實現(xiàn)一個功能),本質就是以.py結尾的python文件(文件名:test.py,對應的模塊名:test)。
包:用來從邏輯上組織模塊的,本質就是文件夾(目錄),必須帶有一個__init__.py文件。
導入包的本質就是解釋這個包下面的__init__.py文件。
在某個模塊下需要導入某一個包下面的內容,需要在包下面的__init__.py文件中修改導入方式,語法為:from . import module_name #.表示當前路徑下
模塊導入方法:
Import module_name(模塊名)===>>實質導出的是模塊名稱 name.test() Import module_name,m1,m2 from module(模塊) import * (函數(shù))===>實質是把代碼復制到當前位置(不建議 ) from module import module_name,m1,m2 from module import module_name as modele_name_from_wfb (as取別名)
import本質(路徑搜索和搜索路徑):
(1)Import module_name ===》把導入的模塊的全部代碼統(tǒng)一解釋一遍,然后賦值給module_name這個變量,例如:module_name=”modele_name.py all code"?!緈odule_name.name】
Import module_name---->執(zhí)行module_name.py---->module_name.py的路徑---sys.path
(2)from module import module_name ==》把module 模塊中的module_name部分放到當前文件執(zhí)行一遍。【name()】
總結:導入模塊的本質就是把python文件解釋一遍。
2.導入不在同一目錄下的文件或者包:
由于導入模塊或包的實質是在系統(tǒng)的環(huán)境變量(路徑)下尋找所導入的文件或者是否存在,存在即可正確執(zhí)行,否則則需要將文件或者包的絕對路徑動態(tài)加入到系統(tǒng)的環(huán)境變量中。使用sys,os模塊
Import sys,os lujin=os.path.dirname(os.path.abspath(__file__)) Sys.path.append(lujin)
目的是:在當前文件中獲得指定文件或包的路徑(父級目錄)。
解釋:
os.path.abspath(__file__) 獲取當前文件的絕對路徑
os.path.dirname:獲取當前文件的父級目錄。
Sys.path.append(lujin):將所獲取的路徑加入到系統(tǒng)環(huán)境變量中。
3.導入優(yōu)化
(1) Import module_name
module_name.name()。。
實質:先找模塊,在找該模塊下的方法.【查找多了效率不高?!?/p>
(2) from module_name import name
name() 。。
實質:把模塊中的方法拿到指定位置執(zhí)行一遍。相比import少了多次查找的過程.
4.模塊分類
a.標準庫(內置)
1. time 和datetime.
gmtime():獲取標準時間(0時區(qū))
localtime():獲取本地時間(東八區(qū))
time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) # %Y對應tm_year %m對應tm.mon


5.json和pickle模塊
Json模塊提供了四個功能:dumps、dump、loads、load
pickle模塊提供了四個功能:dumps、dump、loads、load
.json和pickle模塊只建議dumps和loads一次,否則需要根據(jù)之前的順序依次取出來很麻煩,dumps序列化為字符串。
6. shelve模塊
shelve模塊是一個簡單的k,v將內存數(shù)據(jù)通過文件持久化的模塊,可以持久化任何pickle可支持的python數(shù)據(jù)格式,【可理解為可以實現(xiàn)多次的dumps和、loads】
使用=》
import shelve
d = shelve.open('shelve_test') #打開一個文件
存:d[“key”]=value
取:d,get(“key”)
加密模塊
hashlib模塊
對中/英文的加密:
import hashlib
m=hashlib.md5()
m.update(b"Hello")
m.update("It's me 你好".encode(encoding='utf-8'))
對信息的加密:
import hmac m=hmac.new(b'天王蓋地虎', '寶塔鎮(zhèn)河妖'.encode(encoding='utf-8')
b'天王蓋地虎':必須是bytes類型
'寶塔鎮(zhèn)河妖'.encode(encoding='utf-8':對含有中文的需要進行編碼(encode)成二進制。主要是有無b的區(qū)別。
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python matplotlib通過plt.scatter畫空心圓標記出特定的點方法
今天小編就為大家分享一篇Python matplotlib通過plt.scatter畫空心圓標記出特定的點方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
django實現(xiàn)模型字段動態(tài)choice的操作
這篇文章主要介紹了django實現(xiàn)模型字段動態(tài)choice的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python實現(xiàn)KNN(K-近鄰)算法的示例代碼
這篇文章主要介紹了Python實現(xiàn)KNN(K-近鄰)算法的示例代碼,它主要用于對事物進行分類。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03
Python爬蟲小例子——爬取51job發(fā)布的工作職位
這篇文章主要介紹了Python爬取51job發(fā)布的工作職位,文中講解非常細致,幫助大家更好的理解和學習Python,感興趣的朋友可以了解下2020-07-07

