一. 模塊
在 Python 中,一個.py文件就稱之爲一個模塊(Module)
分類:
內置模塊:
第三方模塊(非官方的比較好的開源模塊,網址:pypi.python.org,安裝時爲pip install 模塊名)
自定義模塊
1. 創建模塊
編寫python腳本
2. 導入模塊
1>import 腳本名稱
注:模塊命名儘量短小,採用全部小寫的方式,可以使用下劃線
2>import as
3>from import
優點:
1>提高了代碼的可維護性
2>編寫代碼不必從零開始,當一個模塊編寫完畢,就可以被其他地方引用
注:__future__模塊的作用:在就版本中體驗新版本的特性
3. 模塊的作用域
模塊中正常的函數和變量名是功用的,在python中,當有些函數和變量不希望被別人使用時,通過 _ 前綴來實現,比如__author__ , __name__就是特殊變量的,__func__,__fun爲私有函數,不能直接引用
二. 常用模塊
1. os模塊
os.name #當前所在平臺,“linux-posix” “windows-nt”
os.getcwd() #獲取當前所在絕對路徑
os.listdir() #列出給定目錄的內容
os.mkdir() #創建指定目錄
os.rmdir() #刪除指定目錄
os.environ #對環境變量的操作
os.access(path,mode) #判斷對一個文件或者目錄是否具有指定的權限,mode 參數的可選值: R_OK, W_OK, 和 X_OK
os.stat() #相當於 Linux 下 stat 命令
eg:
使用 Python 執行 Linux 命令
os.system , 並沒有返回值,是靠副作用產生輸出的
os.popen 返回一個文件對象
os.popen2 返回兩個文件對象,一個是 stdin, 一個是 stdout
os.popen3 返回三個文件對象 :stdin,stdout,stderr
附:os.path模塊
os.path 是os 的一個子模塊 , 主要是對路徑進行解析、創建、測試和其他的一些操作,封裝了不同平臺的路徑操作
路徑解析:
os.path.split()
os.path.basename()
os.path.dirname()
os.path.isabs()
os.path.isdir() #判斷是否是目錄
os.path.isfile() #判斷是否是文件
os.path.islink() #判斷是否是鏈接
2. sys模塊
sys 模塊主要提供了系統相關的配置和操作,封裝了探測、改變解釋器runtime 以及資源的交互
sys.version #得到解釋器的版本信息
sys.platform #得到當前運行平臺
sys.argv #獲取傳遞給腳本的參數,參數解析類似於 bash 的方式,第一個參數代表腳本本身
sys.path #Python在指定的路徑下搜索模塊與包對應的路徑
sys.path.append() #添加搜索模塊與包的路徑
sys.path.remove() #指定刪除搜索模塊與包的路徑
sys.path.insert() #指定位置添加索模塊與包的路徑
eg1:
要求1:用戶輸入參數大於2,在當前目錄創建目錄hello1和hello2
要求2:用戶輸入參數等於1,顯示當前目錄下的所有文件
要求3:無參數輸入,顯示當前目錄下的所有目錄信息(同linux的stat)
測試:
3. random模塊
random.randint() #隨機產生指定範圍的字符
random.random() #隨機產生0到1之間的小數
random.uniform() #隨機產生指定範圍的小數
random.randrange() #隨機產生指定範圍字符
random.choice() #隨機在給定範圍產生一個
random.sample() #隨機在給定範圍產生多個
random.shuffle() #隨機打亂
eg1:生成一個包含4個字符的隨機驗證碼,(由數字和字母組成)
eg2:編寫一個makepass模塊,實現功能爲爲系統管理員創建的新用戶帳號分配一個不同的完全隨機的密碼
4. time模塊
time.time() #時間戳
time.localtime() #將時間戳轉化爲元組格式時間
time.ctime() #時間戳轉化爲字符串格式顯示
time.strftime() #將元組格式時間轉化爲字符串顯示
time.strptime() #將字符串顯示轉化爲元組格式時間
time.mktime(t) #將元組格式時間轉化爲時間戳,但元組長度必須爲9
time.sleep() #等待時長
time.strftime("%Y-%m-%d %X", time.localtime())
模塊編寫注意事項:
當模塊直接運行時,__name__值爲__main__,當是import導入時,其值爲模塊名稱,通常利用if __name__ == "__main__":判斷
二. 包
1. 創建包
1>創建一目錄爲包名
2>在該目錄下創建__init__.py文件存放包的信息,該文件可以爲空
注:包命名時儘量短小,使用全部小寫的方式,不可以使用下劃線
2. 調用包