1. 程式人生 > >想做Python開發,這14種常用Python模組,你需知道的幾大模組!

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

 

一、模組介紹

1. 定義:

模組:本質就是.py結尾的python檔案(檔名:test.py,對應的模組名:test)

用來從邏輯上組織python程式碼(變數,函式,類,邏輯:實現一個功能)

更多幹貨分享加python程式語言學習QQ群 515267276

2. 語法:

import 語句

當直譯器遇到import語句,如果模組在當前的搜尋路徑就會被匯入。搜尋路徑是一個直譯器會先進行搜尋的所有目錄的列表。

匯入模組:

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

呼叫符號:

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

From…import 語句

Python的from語句讓你從模組中匯入一個指定的部分到當前名稱空間中。語法如下:

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

From…import* 語句

把一個模組的所有內容全都匯入到當前的名稱空間也是可行的,只需使用如下宣告:

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

這提供了一個簡單的方法來匯入一個模組中的所有專案。慎用 from…import *。

import 和 from 的區別:

import匯入使用時,加字首 module.func()。相當於把模組程式碼放在當前檔案中執行一遍。

from可以指定需要的函式或變數匯入。

匯入模組和當前py檔案都有同一個函式,呼叫會呼叫哪一個?

因為python是解釋型,所以後面覆蓋前面。

from … import … as …

3. import本質

import 本質:

匯入一個模組本質就是解釋執行一個python檔案

匯入一個包本質就是解釋該包下的__init__.py檔案

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

__init__.py

:本質就是一個目錄(必須帶有一個__init__.py檔案),用來從邏輯上組織模組

匯入包,怎麼匯入?

匯入包的本質:執行包下面的__init__.py檔案

匯入包下的模組

包下面的模組,這樣呼叫是錯誤的

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

在__init__.py內容中匯入模組

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

4、路徑搜尋和搜尋路徑

上面提到的都是匯入同級目錄下的模組,如果不在同一個目錄下:

import module_name實際找module_name.py檔案,是檔案就一定要有路徑。

匯入模組就是:找到.py檔案的位置,把它執行一遍,從哪裡找呢?sys.path.

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

  • # 以上可見:sys.path 是一個列表
  • # 裡面的 '' 指的當前路徑,這是為何查詢模組先從當前目錄查詢的原因
  • os.path.abspath(__file__) # 當前檔案絕對路
  • os.path.dirname(os.path.abspath(__file__)) #獲取目錄名
  • sys.path.append() :追加到最後
  • # 所以:可以如下,動態新增路徑到第一
  • sys.path.insert

5. 匯入優化

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

6. 阻止屬性匯入

如果你不想讓某個模組屬性被 “from module import *” 匯入 , 那麼你可以給你不想匯入的屬性名稱加上一個下劃線( _ )。 不過如果你匯入了整個模組或是你顯式地匯入某個屬性這個隱藏資料的方法就不起作用了。

二、模組的分類

a:標準庫

b:開源模組-第三方模組

c:自定義模組

三、常用內建模組

1、os模組

用於提供系統級別的操作

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

2、time和datetime

在Python中,通常有這幾種方式來表示時間:

時間戳

格式化的時間字串

元組(struct_time)共九個元素。

由於Python的time模組實現主要呼叫C庫,所以各個平臺可能有所不同。

UTC(Coordinated Universal Time,世界協調時)亦即格林威治天文時間,世界標準時間。在中國為UTC+8。DST(Daylight Saving Time)即夏令時。

時間戳(timestamp)的方式:通常來說,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。我們執行“type(time.time())”,返回的是float型別。返回時間戳方式的函式主要有time(),clock()等。

元組(struct_time)方式:struct_time元組共有9個元素,返回struct_time的函式主要有gmtime(),localtime(),strptime()。

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

時間轉為時間戳

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

格式化時間字串

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

轉化時間戳和元組到時間字串

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

時間加減

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

更多幹貨分享加python程式語言學習QQ群 515267276

3、random模組

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

4、sys模組

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

5、shutil模組

高階的 檔案、資料夾、拷貝、壓縮包等 處理模組

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

6、ConfigParser

用於對特定的配置進行操作,當前模組的名稱在 python 3.x 版本中變更為 configparser。

來看一個好多軟體的常見文件格式如下

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

如果想用python生成一個這樣的文件怎麼做呢?

• 生成

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

• 讀取出來

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

• configparser增刪改查語法

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

7、hashlib模組

用於加密相關的操作,3.x裡代替了md5模組和sha模組,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 演算法,hash 加密都是bytes型別

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

python 還有一個 hmac 模組,它內部對我們建立 key 和 內容 再進行處理然後再加密

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

8、Subprocess模組

呼叫subprocess.run(…)是推薦的常用方法,在大多數情況下能滿足需求,但如果你可能需要進行一些複雜的與系統的互動的話,你還可以用subprocess.Popen(),語法如下:

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

可用引數:

args:shell命令,可以是字串或者序列型別(如:list,元組)

bufsize:指定緩衝。0 無緩衝,1 行緩衝,其他 緩衝區大小,負值 系統緩衝

stdin, stdout, stderr:分別表示程式的標準輸入、輸出、錯誤控制代碼

preexec_fn:只在Unix平臺下有效,用於指定一個可執行物件(callable object),它將在子程序執行之前被呼叫

close_sfs:在windows平臺下,如果close_fds被設定為True,則新建立的子程序將不會繼承父程序的輸入、輸出、錯誤管道。 所以不能將close_fds設定為True同時重定向子程序的標準輸入、輸出與錯誤(stdin, stdout, stderr)。

shell:同上

cwd:用於設定子程序的當前目錄

env:用於指定子程序的環境變數。如果env = None,子程序的環境變數將從父程序中繼承。

universal_newlines:不同系統的換行符不同,True -> 同意使用

startupinfo與createionflags只在windows下有效 將被傳遞給底層的CreateProcess()函式,用於設定子程序的一些屬性,如:主視窗的外觀,程序的優先順序等等

終端輸入的命令分為兩種:

• 輸入即可得到輸出,如:ifconfig

• 輸入進行某環境,依賴再輸入,如:python

需要互動的命令示例

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

9、re-正則表示式模組

常用正則表示式符號

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

最常用的匹配語法

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

分組匹配 和 group()、groups()、groupdict()

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

更多幹貨分享加python程式語言學習QQ群 515267276

10、logging模組

python的logging模組提供了標準的日誌介面,你可以通過它儲存各種格式的日誌,logging的日誌可以分為 debug(), info(), warning(), error() and critical() 5個級別,下面我們看一下怎麼用。

最簡單用法

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

看一下這幾個日誌級別分別代表什麼意思

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

如果想把日誌寫到檔案裡,也很簡單

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

其中下面這句中的level=loggin.INFO意思是,把日誌紀錄級別設定為INFO,也就是說,只有比日誌是INFO或比INFO級別更高的日誌才會被紀錄到檔案裡,在這個例子, 第一條日誌是不會被紀錄的,如果希望紀錄debug的日誌,那把日誌級別改成DEBUG就行了。

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

如果想同時把log列印在螢幕和檔案日誌裡,就需要了解一點複雜的知識 了

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

11、json和pickle資料序列化

str eval

資料序列化

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

json只能處理簡單的,所有語言通用的,函式不能json序列化

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

pickle可以序列化python所有的資料型別

12、shelve 模組

shelve模組是一個簡單的k,v將記憶體資料通過檔案持久化的模組,可以持久化任何pickle可支援的python資料格式

想做Python開發,這14種常用Python模組,你需知道的幾大模組!

 

13、xml處理模組

xml是實現不同語言或程式之間進行資料交換的協議,跟json差不多,但json使用起來更簡單,json之前的交換方式

14、PyYAML模組

更多幹貨分享加python程式語言學習QQ群 515267276

Python也可以很容易的處理ymal文件格式,只不過需要安裝一個模組

想做Python開發,這14種常用Python模組,你需知道的幾大模組!