1.python模塊是:
成都創(chuàng)新互聯(lián)是一家專業(yè)提供宣化企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站制作、網(wǎng)站設計、外貿網(wǎng)站建設、成都h5網(wǎng)站建設、小程序制作等業(yè)務。10年已為宣化眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡公司優(yōu)惠進行中。
python模塊:包含并且有組織的代碼片段為模塊。
表現(xiàn)形式為:寫的代碼保存為文件。這個文件就是一個模塊。sample.py 其中文件名smaple為模塊名字。
關系圖:
2.python包是:
包是一個有層次的文件目錄結構,它定義了由n個模塊或n個子包組成的python應用程序執(zhí)行環(huán)境。
通俗一點:包是一個包含__init__.py 文件的目錄,該目錄下一定得有這個__init__.py文件和其它模塊或子包。
常見問題:
引入某一特定路徑下的模塊
使用sys.path.append(yourmodulepath)
將一個路徑加入到python系統(tǒng)路徑下,避免每次通過代碼指定路徑
利用系統(tǒng)環(huán)境變量?export PYTHONPATH=$PYTHONPATH:yourmodulepath,
直接將這個路徑鏈接到類似/Library/Python/2.7/site-packages目錄下
好的建議:
經(jīng)常使用if __name__ == '__main__',保證寫包既可以import又可以獨立運行,用于test。
多次import不會多次執(zhí)行模塊,只會執(zhí)行一次。可以使用reload來強制運行模塊,但不提倡。
常見的包結構如下:
package_a
├── __init__.py
├── module_a1.py
└── module_a2.py
package_b
├── __init__.py
├── module_b1.py
└── module_b2.py
main.py
如果main.py想要引用packagea中的模塊modulea1,可以使用:
from package_a import module_a1
import package_a.module_a1
如果packagea中的modulea1需要引用packageb,那么默認情況下,python是找不到packageb。我們可以使用sys.path.append('../'),可以在packagea中的__init__.py添加這句話,然后該包下得所有module都添加*?import __init_即可。
關系圖:
3.庫(library)
庫的概念是具有相關功能模塊的集合。這也是Python的一大特色之一,即具有強大的標準庫、第三方庫以及自定義模塊。
一些python常用函數(shù)包:
1、Urllib3
Urllib3是一個 Python 的 HTTP 客戶端,它擁有 Python 標準庫中缺少的許多功能:
線程安全
連接池
客戶端 SSL/TLS 驗證
使用分段編碼上傳文件
用來重試請求和處理 HTTP 重定向的助手
支持 gzip 和 deflate 編碼
HTTP 和 SOCKS 的代理支持
2、Six
six 是一個是 Python 2 和 3 的兼容性庫。這個項目旨在支持可同時運行在 Python 2 和 3 上的代碼庫。它提供了許多可簡化 Python 2 和 3 之間語法差異的函數(shù)。
3、botocore、boto3、s3transfer、awscli
Botocore是 AWS 的底層接口。Botocore是 Boto3 庫(#22)的基礎,后者讓你可以使用 Amazon S3 和 Amazon EC2 一類的服務。Botocore 還是 AWS-CLI 的基礎,后者為 AWS 提供統(tǒng)一的命令行界面。
S3transfer(#7)是用于管理 Amazon S3 傳輸?shù)?Python 庫。它正在積極開發(fā)中,其介紹頁面不推薦人們現(xiàn)在使用,或者至少等版本固定下來再用,因為其 API 可能發(fā)生變化,在次要版本之間都可能更改。Boto3、AWS-CLI和其他許多項目都依賴s3transfer。
4、Pip
pip是“Pip Installs Packages”的首字母遞歸縮寫。
pip很容易使用。要安裝一個包只需pip install package name即可,而刪除包只需pip uninstall package name即可。
最大優(yōu)點之一是它可以獲取包列表,通常以requirements.txt文件的形式獲取。該文件能選擇包含所需版本的詳細規(guī)范。大多數(shù) Python 項目都包含這樣的文件。
如果結合使用pip與virtualenv(列表中的 #57),就可以創(chuàng)建可預測的隔離環(huán)境,同時不會干擾底層系統(tǒng),反之亦然。
5、Python-dateutil
python-dateutil模塊提供了對標準datetime模塊的強大擴展。我的經(jīng)驗是,常規(guī)的Python datetime缺少哪些功能,python-dateutil就能補足那一塊。
6、Requests
Requests建立在我們的 #1 庫——urllib3基礎上。它讓 Web 請求變得非常簡單。相比urllib3來說,很多人更喜歡這個包。而且使用它的最終用戶可能也比urllib3更多。后者更偏底層,并且考慮到它對內部的控制級別,它一般是作為其他項目的依賴項。
7、Certifi
近年來,幾乎所有網(wǎng)站都轉向 SSL,你可以通過地址欄中的小鎖符號來識別它。加了小鎖意味著與該站點的通信是安全和加密的,能防止竊聽行為。
8、Idna
根據(jù)其 PyPI 頁面,idna提供了“對 RFC5891 中指定的應用程序中國際化域名(IDNA)協(xié)議的支持?!?/p>
IDNA的核心是兩個函數(shù):ToASCII和ToUnicode。ToASCII會將國際 Unicode 域轉換為 ASCII 字符串。ToUnicode則逆轉該過程。在IDNA包中,這些函數(shù)稱為idna.encode()和idna.decode()
9、PyYAML
YAML是一種數(shù)據(jù)序列化格式。它的設計宗旨是讓人類和計算機都能很容易地閱讀代碼——人類很容易讀寫它的內容,計算機也可以解析它。
PyYAML是 Python 的YAML解析器和發(fā)射器,這意味著它可以讀寫YAML。它會把任何 Python 對象寫成YAML:列表、字典,甚至是類實例都包括在內。
10、Pyasn1
像上面的IDNA一樣,這個項目也非常有用:
ASN.1 類型和 DER/BER/CER 編碼(X.208)的純 Python 實現(xiàn)
所幸這個已有數(shù)十年歷史的標準有很多信息可用。ASN.1是 Abstract Syntax Notation One 的縮寫,它就像是數(shù)據(jù)序列化的教父。它來自電信行業(yè)。也許你知道協(xié)議緩沖區(qū)或 Apache Thrift?這就是它們的 1984 年版本。
11、Docutils
Docutils是一個模塊化系統(tǒng),用來將純文本文檔處理為很多有用的格式,例如 HTML、XML 和 LaTeX 等。Docutils能讀取reStructuredText格式的純文本文檔,這種格式是類似于 MarkDown 的易讀標記語法。
12、Chardet
你可以用chardet模塊來檢測文件或數(shù)據(jù)流的字符集。比如說,需要分析大量隨機文本時,這會很有用。但你也可以在處理遠程下載的數(shù)據(jù),但不知道用的是什么字符集時使用它。
13、RSA
rsa包是一個純 Python 的 RSA 實現(xiàn)。它支持:
加密和解密
簽名和驗證簽名
根據(jù) PKCS#1 1.5 版生成密鑰
它既可以用作 Python 庫,也能在命令行中使用。
14、Jmespath
JMESPath,發(fā)音為“James path”,使 Python 中的 JSON 更容易使用。它允許你聲明性地指定如何從 JSON 文檔中提取元素。
15、Setuptools
它是用于創(chuàng)建 Python 包的工具。不過,其文檔很糟糕。它沒有清晰描述它的用途,并且文檔中包含無效鏈接。最好的信息源是這個站點,特別是這個創(chuàng)建 Python 包的指南。
16、Pytz
像dateutils一樣,這個庫可幫助你處理日期和時間。有時候,時區(qū)處理起來可能很麻煩。幸好有這樣的包,可以讓事情變得簡單些。
17、Futures
從 Python 3.2 開始,python 提供current.futures模塊,可幫助你實現(xiàn)異步執(zhí)行。futures 包是該庫適用于 Python 2 的 backport。它不適用于 Python3 用戶,因為 Python 3 原生提供了該模塊。
18、Colorama
使用 Colorama,你可以為終端添加一些顏色:
更多Python知識請關注Python自學網(wǎng)
Python常用包:NumPy數(shù)值計算、pandas數(shù)據(jù)處理、matplotlib數(shù)據(jù)可視化、sciPy科學計算、Scrapy爬蟲、scikit-learn機器學習、Keras深度學習、statsmodels統(tǒng)計建模計量經(jīng)濟。
NumPy是使用Python進行科學計算的基礎包,Numpy可以提供數(shù)組支持以及相應的高效處理函數(shù),是Python數(shù)據(jù)分析的基礎,也是SciPy、Pandas等數(shù)據(jù)處理和科學計算庫最基本的函數(shù)功能庫,且其數(shù)據(jù)類型對Python數(shù)據(jù)分析十分有用。
pandas 是python的一個數(shù)據(jù)分析包,是基于NumPy 的一種工具,該工具是為了解決數(shù)據(jù)分析任務而創(chuàng)建的。pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。
Matplotlib是強大的數(shù)據(jù)可視化工具和作圖庫,是主要用于繪制數(shù)據(jù)圖表的Python庫,提供了繪制各類可視化圖形的命令字庫、簡單的接口,可以方便用戶輕松掌握圖形的格式,繪制各類可視化圖形。
SciPy是一組專門解決科學計算中各種標準問題域的包的集合,包含的功能有最優(yōu)化、線性代數(shù)、積分、插值、擬合、特殊函數(shù)、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學與工程中常用的計算等,這些對數(shù)據(jù)分析和挖掘十分有用。
Scrapy是專門為爬蟲而生的工具,具有URL讀取、HTML解析、存儲數(shù)據(jù)等功能,可以使用Twisted異步網(wǎng)絡庫來處理網(wǎng)絡通訊,架構清晰,且包含了各種中間件接口,可以靈活地完成各種需求。
Scikit-Learn是Python常用的機器學習工具包,提供了完善的機器學習工具箱,支持數(shù)據(jù)預處理、分類、回歸、聚類、預測和模型分析等強大機器學習庫,其依賴于Numpy、Scipy和Matplotlib等。
Keras是深度學習庫,人工神經(jīng)網(wǎng)絡和深度學習模型,基于Theano之上,依賴于Numpy和Scipy,利用它可以搭建普通的神經(jīng)網(wǎng)絡和各種深度學習模型,如語言處理、圖像識別、自編碼器、循環(huán)神經(jīng)網(wǎng)絡、遞歸審計網(wǎng)絡、卷積神經(jīng)網(wǎng)絡等。
Statsmodels是Python的統(tǒng)計建模和計量經(jīng)濟學工具包,包括一些描述統(tǒng)計、統(tǒng)計模型估計和推斷。
看你用哪種方式
如果是import 包名,就是包名.函數(shù)名方式調用
如果是from 包名 import 函數(shù)名、from 包名 import *,就是直接函數(shù)名就可以調用