想做Python開發(fā)击碗,這14種常用Python模塊,你必須知道们拙!

一稍途、模塊介紹

1. 定義:

模塊:本質(zhì)就是.py結(jié)尾的python文件(文件名:test.py,對應(yīng)的模塊名:test)

用來從邏輯上組織python代碼(變量砚婆,函數(shù)械拍,類,邏輯:實現(xiàn)一個功能)

2. 語法:

? import 語句

當(dāng)解釋器遇到import語句装盯,如果模塊在當(dāng)前的搜索路徑就會被導(dǎo)入坷虑。搜索路徑是一個解釋器會先進行搜索的所有目錄的列表。

導(dǎo)入模塊:

1埂奈、 import module1[, module2[,... moduleN]

調(diào)用符號:

? From…import 語句

Python的from語句讓你從模塊中導(dǎo)入一個指定的部分到當(dāng)前命名空間中迄损。語法如下:

1、from modname import name1[, name2[, ... nameN]]

From…import* 語句

把一個模塊的所有內(nèi)容全都導(dǎo)入到當(dāng)前的命名空間也是可行的账磺,只需使用如下聲明:

1芹敌、from modname import *

這提供了一個簡單的方法來導(dǎo)入一個模塊中的所有項目。慎用 from…import *垮抗。

? import 和 from 的區(qū)別:

import導(dǎo)入使用時氏捞,加前綴 module.func。相當(dāng)于把模塊代碼放在當(dāng)前文件中執(zhí)行一遍借宵。

from可以指定需要的函數(shù)或變量導(dǎo)入幌衣。

導(dǎo)入模塊和當(dāng)前py文件都有同一個函數(shù),調(diào)用會調(diào)用哪一個壤玫?

因為python是解釋型豁护,所以后面覆蓋前面。

? from … import … as …

3. import本質(zhì)

import 本質(zhì):

導(dǎo)入一個模塊本質(zhì)就是解釋執(zhí)行一個python文件

導(dǎo)入一個包本質(zhì)就是解釋該包下的__init__.py文件

? __init__.py

:本質(zhì)就是一個目錄(必須帶有一個__init__.py文件)欲间,用來從邏輯上組織模塊

導(dǎo)入包楚里,怎么導(dǎo)入?

導(dǎo)入包的本質(zhì):執(zhí)行包下面的__init__.py文件

導(dǎo)入包下的模塊

包下面的模塊猎贴,這樣調(diào)用是錯誤的

在__init__.py內(nèi)容中導(dǎo)入模塊

4班缎、路徑搜索和搜索路徑

上面提到的都是導(dǎo)入同級目錄下的模塊蝴光,如果不在同一個目錄下:

import module_name實際找module_name.py文件,是文件就一定要有路徑达址。

導(dǎo)入模塊就是:找到.py文件的位置蔑祟,把它執(zhí)行一遍,從哪里找呢沉唠?sys.path.

5. 導(dǎo)入優(yōu)化

6. 阻止屬性導(dǎo)入

如果你不想讓某個模塊屬性被 “from module import *” 導(dǎo)入 , 那么你可以給你不想導(dǎo)入的屬性名稱加上一個下劃線( _ )疆虚。 不過如果你導(dǎo)入了整個模塊或是你顯式地導(dǎo)入某個屬性這個隱藏數(shù)據(jù)的方法就不起作用了。

二满葛、模塊的分類

a:標準庫

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

c:自定義模塊

三径簿、常用內(nèi)置模塊

1、os模塊

用于提供系統(tǒng)級別的操作

2嘀韧、time和datetime

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

時間戳

格式化的時間字符串

元組(struct_time)共九個元素。

由于Python的time模塊實現(xiàn)主要調(diào)用C庫锄贷,所以各個平臺可能有所不同译蒂。

UTC(Coordinated Universal Time,世界協(xié)調(diào)時)亦即格林威治天文時間肃叶,世界標準時間蹂随。在中國為UTC+8。DST(Daylight Saving Time)即夏令時因惭。

時間戳(timestamp)的方式:通常來說岳锁,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。我們運行“type(time.time)”蹦魔,返回的是float類型激率。返回時間戳方式的函數(shù)主要有time,clock等勿决。

元組(struct_time)方式:struct_time元組共有9個元素乒躺,返回struct_time的函數(shù)主要有g(shù)mtime,localtime低缩,strptime嘉冒。

時間轉(zhuǎn)為時間戳

格式化時間字符串

轉(zhuǎn)化時間戳和元組到時間字符串

時間加減

3、random模塊

4咆繁、sys模塊

5讳推、shutil模塊

高級的 文件、文件夾玩般、拷貝银觅、壓縮包等 處理模塊

6、ConfigParser

用于對特定的配置進行操作坏为,當(dāng)前模塊的名稱在 python 3.x 版本中變更為 configparser究驴。

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

如果想用python生成一個這樣的文檔怎么做呢镊绪?

? 生成

? 讀取出來

? configparser增刪改查語法

7、hashlib模塊

用于加密相關(guān)的操作洒忧,3.x里代替了md5模塊和sha模塊蝴韭,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法跑慕,hash 加密都是bytes類型

python 還有一個 hmac 模塊万皿,它內(nèi)部對我們創(chuàng)建 key 和 內(nèi)容 再進行處理然后再加密

8摧找、Subprocess模塊

調(diào)用subprocess.run(…)是推薦的常用方法核行,在大多數(shù)情況下能滿足需求,但如果你可能需要進行一些復(fù)雜的與系統(tǒng)的交互的話蹬耘,你還可以用subprocess.Popen,語法如下:

可用參數(shù):

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

bufsize:指定緩沖综苔。0 無緩沖,1 行緩沖,其他 緩沖區(qū)大小,負值 系統(tǒng)緩沖

stdin, stdout, stderr:分別表示程序的標準輸入惩系、輸出、錯誤句柄

preexec_fn:只在Unix平臺下有效如筛,用于指定一個可執(zhí)行對象(callable object)堡牡,它將在子進程運行之前被調(diào)用

close_sfs:在windows平臺下,如果close_fds被設(shè)置為True杨刨,則新創(chuàng)建的子進程將不會繼承父進程的輸入晤柄、輸出、錯誤管道妖胀。 所以不能將close_fds設(shè)置為True同時重定向子進程的標準輸入芥颈、輸出與錯誤(stdin, stdout, stderr)。

shell:同上

cwd:用于設(shè)置子進程的當(dāng)前目錄

env:用于指定子進程的環(huán)境變量赚抡。如果env = None爬坑,子進程的環(huán)境變量將從父進程中繼承。

universal_newlines:不同系統(tǒng)的換行符不同涂臣,True -> 同意使用

startupinfo與createionflags只在windows下有效 將被傳遞給底層的CreateProcess函數(shù)盾计,用于設(shè)置子進程的一些屬性,如:主窗口的外觀赁遗,進程的優(yōu)先級等等

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

? 輸入即可得到輸出署辉,如:ifconfig

? 輸入進行某環(huán)境,依賴再輸入吼和,如:python

需要交互的命令示例

9涨薪、re-正則表達式模塊

常用正則表達式符號

最常用的匹配語法

分組匹配 和 group、groups炫乓、groupdict

10刚夺、logging模塊

python的logging模塊提供了標準的日志接口献丑,你可以通過它存儲各種格式的日志,logging的日志可以分為 debug, info, warning, error and critical 5個級別侠姑,下面我們看一下怎么用创橄。

最簡單用法

看一下這幾個日志級別分別代表什么意思

如果想把日志寫到文件里,也很簡單

其中下面這句中的level=loggin.INFO意思是莽红,把日志紀錄級別設(shè)置為INFO妥畏,也就是說,只有比日志是INFO或比INFO級別更高的日志才會被紀錄到文件里安吁,在這個例子醉蚁, 第一條日志是不會被紀錄的,如果希望紀錄debug的日志鬼店,那把日志級別改成DEBUG就行了网棍。

如果想同時把log打印在屏幕和文件日志里,就需要了解一點復(fù)雜的知識 了

11妇智、json和pickle數(shù)據(jù)序列化

str eval

數(shù)據(jù)序列化

json只能處理簡單的滥玷,所有語言通用的,函數(shù)不能json序列化

pickle可以序列化python所有的數(shù)據(jù)類型

12巍棱、shelve 模塊

shelve模塊是一個簡單的k,v將內(nèi)存數(shù)據(jù)通過文件持久化的模塊惑畴,可以持久化任何pickle可支持的python數(shù)據(jù)格式

13、xml處理模塊

xml是實現(xiàn)不同語言或程序之間進行數(shù)據(jù)交換的協(xié)議航徙,跟json差不多如贷,但json使用起來更簡單,json之前的交換方式

參考文檔:

14捉偏、PyYAML模塊

Python也可以很容易的處理ymal文檔格式倒得,只不過需要安裝一個模塊,參考文檔

需要python教程+PDF電子書的小伙伴

關(guān)注微信公眾號:速學(xué)Python夭禽,后臺回復(fù):簡書霞掺,即可拿Python學(xué)習(xí)資料

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市讹躯,隨后出現(xiàn)的幾起案子菩彬,更是在濱河造成了極大的恐慌,老刑警劉巖潮梯,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骗灶,死亡現(xiàn)場離奇詭異,居然都是意外死亡秉馏,警方通過查閱死者的電腦和手機耙旦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來萝究,“玉大人免都,你說我怎么就攤上這事锉罐。” “怎么了绕娘?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵脓规,是天一觀的道長。 經(jīng)常有香客問我险领,道長侨舆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任绢陌,我火速辦了婚禮挨下,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘下面。我一直安慰自己复颈,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布沥割。 她就那樣靜靜地躺著,像睡著了一般凿菩。 火紅的嫁衣襯著肌膚如雪机杜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天衅谷,我揣著相機與錄音椒拗,去河邊找鬼。 笑死获黔,一個胖子當(dāng)著我的面吹牛蚀苛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播玷氏,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼堵未,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盏触?” 一聲冷哼從身側(cè)響起渗蟹,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赞辩,沒想到半個月后雌芽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡辨嗽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年世落,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糟需。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡屉佳,死狀恐怖来破,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情忘古,我是刑警寧澤徘禁,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站髓堪,受9級特大地震影響送朱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜干旁,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一驶沼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧争群,春花似錦回怜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至轻要,卻和暖如春复旬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冲泥。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工驹碍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凡恍。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓志秃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嚼酝。 傳聞我的和親對象是個殘疾皇子浮还,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容