標籤:path 技術 dll 目錄 方法 rename process .json 推薦
本節大綱:
1.模組介紹
2.time&datetime
3.random.
4.os
5.sys
6.shutil
7.json&picle
8.shelve
9.xml處理
10.yaml處理
11.configparser
12.hashlib
13.subprocess
14.logging模組
15.reRegex
模組的定義:用一堆代碼實現了某個功能的代碼集合
類似與函數式編程和面向過程編程,函數式編程則完成一個功能,其他代碼用來調用即可,提供了代碼的重用性和代碼間的耦合,而對於一個複雜的功能來說,可能需要多個函數才能完成(函數又可以在不同的.py檔案中),n個.py檔案組成的代碼集合就稱為模組
如:os是系統相關的模組,file是檔案操作相關的模組
模組分為三種:
自訂模組
內建模組
開源模組(第三方模組)
自訂模組
1.定義模組
情景一
情景二
2.匯入模組
在python中,要想使用模組,需要先匯入,匯入模組有以下幾種方式:
如要匯入一個名為module的模組
1 import module2 from module.xx.xx import xx3 from module.xx.xx import xx as rename 4 from module.xx.xx import *
#*號這種匯入模式會匯入一個模組中的所有項目,這種方法雖然很簡單,便利,但是不推薦使用,
#因為引入的其他來源的命令,很可能覆蓋了已有的定義,存在一定的安全隱患
匯入模組其實就是在告訴Python解譯器去解釋那個py檔案
如果匯入的是一個py檔案,解譯器就解釋該py檔案
如果匯入的是一個包,解譯器就解釋該包下的__init__.py檔案
Python中,匯入模組時是根據那個路徑作為基準來進行的呢?
可通過sys模組中的sys.path來查看
import sysprint(sys.path)#[‘D:\\PycharmProjects\\fullstack\\homework_oneday\\module\\module_file‘, ‘D:\\PycharmProjects\\fullstack‘, ‘C:\\Program Files\\Python35\\python35.zip‘, ‘C:\\Program Files\\Python35\\DLLs‘, ‘C:\\Program Files\\Python35\\lib‘, ‘C:\\Program Files\\Python35‘, ‘C:\\Program Files\\Python35\\lib\\site-packages‘]
如果sys.path路徑列表中沒有你想要的路徑,可以通過sys.path.append(‘路徑‘)添加
通過os模組可以擷取各種目錄
import sysimport ospre_path = os.path.abspath(‘../‘)sys.path.append(pre_path)
包(package)的概念
我們先設想一下,如果不同的人編寫的模組名相同怎麼辦?為了避免衝突,Python又引進了按目錄
來組織模組的方法,稱為包(package)。
假設,如,我的兩個time_file.py模組名字重名了,但是這兩個模組的功能都不相同,如果這兩個模組都在同一級目錄中,那麼我在其他地方要調用這個time_file.py模組,那麼這個時候就會發生衝突,在這裡我們就可以通過包來組織模組,避免衝突,
方法是:選擇一個頂層包名,引入包以後,只要頂層的包名不與別人衝突,那這個包裡面的模組都不會與別人衝突了。
請注意:每個包目錄下來都會有一個__init__.py的檔案,這個檔案必須是存在的,否則,Python就不把這個目錄當成普通目錄,而不是一個包,__init__.py可以是空檔案,也可以有python代碼,__init__.py本身就是一個檔案,它的模組命就是對應的包名,它一般由於做介面檔案
python--常見模組學習