常用python模塊
⑴ python必學的模塊有哪些
簡單來說,模塊就是一堆代碼實現某個功能,它們是已經寫好的.py文件,在我們的.py文件中只需要用import導入模塊就能使用它的功能了。
Python中的模塊有內置標准模塊、開源模塊和自定義模塊。
內置標准模塊就是Python自帶的模塊,即下載好Python就可以直接導入使用的模塊,例如我們之前使用過的math模塊、time模塊等。
開源模塊就是不收費的由好心人寫好的模塊,我們可以通過下載這些模塊後導入使用,開源模塊一般也被我們稱為第三方模塊,例如數據處理工具NumPy、Pandas,以及深度學習著名框架Tensorflow都屬於開源模塊。
自定義模塊與開源模塊相對應,開源模塊是他人寫的,而自定義模塊就是自己寫好的模塊。
Python常見的三個模塊
一、time與datetime模塊
在Python中,通常有這幾種方式來表示時間:
時間戳(timestamp):通常來說,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。我們運行「type(time.time())」,返回的是float類型。
格式化的時間字元串(Format String)
結構化的時間(struct_time):struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天,夏令時)
二、random模塊
三、os模塊
os模塊是與操作系統交互的一個介面
⑵ 【Python入門】37.常用第三方模塊之 創建虛擬環境virtualenv
摘要:virtualenv可創建獨立的虛擬運行環境,解決了不同應用項目間多版本的不兼容問題。
常用第三方模塊
virtualenv
安裝virtualenv
創建虛擬環境
使用virtualenv
小結
virtualenv 用於創建Python的虛擬環境。當一個項目需要運行的版本與系統所帶的版本不一致,就需要創建一個該項目的獨立運行環境,確保項目正常運行。
比如現在要做一個Django項目,用到的Django是1.8版本,但系統的Django版本已經更新到1.11了,絕談肢如果用系統的環境來運行項目就會有不兼容的情況出現,那麼就需要創建虛擬環境來解決。
linux系統和Windows系統使用virtualenv略有不同。
下面介紹的是在 Windows系統 下如何使用virtualenv。
在命令行模式下輸入:
等待安裝成功即可。
首先通過cd命令進入需要創建虛擬環境的文件目錄,如在D盤的envs文件夾裡面
然後通過 virtualenv 創建一個虛擬環境,我們將它命名為 new_env
然後會看到下面結果:
說明成功使用當前系統的Python版本創建了一個虛擬環境。
通過cd命令進入虛擬環境目錄下的Scripts目錄
然後輸入 activate
會出現下面的結果:
地址前面的括侍或號表示,當前環境是Python創建的虛擬環境 new_env 。
輸入 python ,可查看當前環境的Python版本
輸入 pip list ,可查看當前環境下包含的庫的版本
在虛擬環境下,用pip安裝的所有包都會裝在 new_env 環境下,系統Python環境不受影響。這樣,我們就可以安裝運行項目所需要的工具版本了,
最並世後,使用 deactivate 命令退出虛擬環境
virtualenv可創建獨立的虛擬運行環境,解決了不同應用項目間多版本的不兼容問題。
以上就是本節的全部內容,感謝你的閱讀。
下一節內容:圖形界面
有任何問題與想法,歡迎評論與吐槽。
和博主一起學習Python吧( ̄▽ ̄)~*
⑶ 盤點Python常用的模塊和包
模塊
1.定義
計算機在開發過程中,代碼越寫越多,也就越難以維護,所以為了編寫可維護的代碼,我們會把函數進行分組,放在不同的文件里。在python里,一個.py文件就是一個模塊。
2.優點:
提高代碼的可維護性。
提高代碼的復用,當模塊完成時就可以在其他代碼中調用。
引用其他模塊,包含python內置模塊和其他第三方模塊。
避免函數名和變數名等名稱沖突。
python內建模塊:
1.sys模塊
2.random模塊
3.os模塊:
os.path:講解
https://www.cnblogs.com/yufeihlf/p/6179547.html
數據可視化
1.matplotlib :
是Python可視化程序庫的泰斗,它的設計和在1980年代被設計的商業化程序語言MATLAB非常接近。比如pandas和Seaborn就是matplotlib的外包,它們讓你能用更少的代碼去調用 matplotlib的方法。
訪問:
https://matplotlib.org/
顏色:
https://www.cnblogs.com/darkknightzh/p/6117528.html
教程:
https://wizardforcel.gitbooks.io/matplotlib-user-guide/3.1.html
2.Seaborn:
它是構建在matplotlib的基礎上的,用簡潔的代碼來製作好看的圖表。Seaborn跟matplotlib最大的區別就是它的默認繪圖風格和色彩搭配都具有現代美感。
訪問:
http://seaborn.pydata.org/index.html
3.ggplot:
gplot 跟 matplotlib 的不同之處是它允許你疊加不同的圖層來完成一幅圖
訪問:
http://ggplot.yhathq.com/
4.Mayavi:
Mayavi2完全用Python編寫,因此它不但是一個方便實用的可視化軟體,而且可以方便地用Python編寫擴展,嵌入到用戶編寫的Python程序中,或者直接使用其面向腳本的API:mlab快速繪制三維圖
訪問:http://code.enthought.com/pages/mayavi-project.html
講解:https://blog.csdn.net/ouening/article/details/76595427https://www.jianshu.com/p/81e6f4f1cdd8
5.TVTK:
TVTK庫對標準的VTK庫進行包裝,提供了Python風格的API、支持Trait屬性和numpy的多維數組。
VTK (http://www.vtk.org/) 是一套三維的數據可視化工具,它由C++編寫,包涵了近千個類幫助我們處理和顯示數據
講解:https://docs.huihoo.com/scipy/scipy-zh-cn/tvtk_intro.html
機器學習
1.Scikit-learn
是一個簡單且高效的數據挖掘和數據分析工具,易上手,可以在多個上下文中重復使用。它基於NumPy, SciPy 和 matplotlib,開源,可商用(基於 BSD 許可)。
訪問:
講解:https://blog.csdn.net/finafily0526/article/details/79318401
2.Tensorflow
最初由谷歌機器智能科研組織中的谷歌大腦團隊(Google Brain Team)的研究人員和工程師開發。該系統設計的初衷是為了便於機器學習研究,能夠更快更好地將科研原型轉化為生產項目。
相關推薦:《Python視頻教程》
Web框架
1.Tornado
訪問:http://www.tornadoweb.org/en/stable/
2.Flask
訪問:http://flask.pocoo.org/
3.Web.py
訪問:http://webpy.org/
4.django
https://www.djangoproject.com/
5.cherrypy
http://cherrypy.org/
6.jinjs
http://docs.jinkan.org/docs/jinja2/
GUI 圖形界面
1.Tkinter
https://wiki.python.org/moin/TkInter/
2.wxPython
https://www.wxpython.org/
3.PyGTK
http://www.pygtk.org/
4.PyQt
https://sourceforge.net/projects/pyqt/
5.PySide
http://wiki.qt.io/Category:LanguageBindings::PySide
科學計算
教程
https://docs.huihoo.com/scipy/scipy-zh-cn/index.html#
1.numpy
訪問
http://www.numpy.org/
講解
https://blog.csdn.net/lm_is_dc/article/details/81098805
2.sympy
sympy是一個Python的科學計算庫,用一套強大的符號計算體系完成諸如多項式求值、求極限、解方程、求積分、微分方程、級數展開、矩陣運算等等計算問題
訪問
https://docs.sympy.org/0.7.1/guide.html#guide
講解
https://www.jianshu.com/p/339c91ae9f41
解方程
https://www.cnblogs.com/zyg123/p/10549354.html
3.SciPy
官網
https://www.scipy.org/
講解
https://blog.csdn.net/wsp_1138886114/article/details/80444621
4.pandas
官網
http://pandas.pydata.org/
講解
https://www.cnblogs.com/linux-wangkun/p/5903945.html
5.blaze
官網
http://blaze.readthedocs.io/en/latest/index.html
密碼學
1.cryptography
https://pypi.python.org/pypi/cryptography/
2.hashids
http://www.oschina.net/p/hashids
3.Paramiko
http://www.paramiko.org/
4.Passlib
https://pythonhosted.org/passlib/
5.PyCrypto
https://pypi.python.org/pypi/pycrypto
6.PyNacl
http://pynacl.readthedocs.io/en/latest/
爬蟲相關
requests
http://www.python-requests.org/
scrapy
https://scrapy.org/
pyspider
https://github.com/binux/pyspider
portia
https://github.com/scrapinghub/portia
html2text
https://github.com/Alir3z4/html2text
BeautifulSoup
https://www.crummy.com/software/BeautifulSoup/
lxml
http://lxml.de/
selenium
http://docs.seleniumhq.org/
mechanize
https://pypi.python.org/pypi/mechanize
PyQuery
https://pypi.python.org/pypi/pyquery/
creepy
https://pypi.python.org/pypi/creepy
gevent
一個高並發的網路性能庫
http://www.gevent.org/
圖像處理
bigmoyan
http://scikit-image.org/
Python Imaging Library(PIL)
http://www.pythonware.com/procts/pil/
pillow:
http://pillow.readthedocs.io/en/latest/
自然語言處理
1.nltk:
http://www.nltk.org/
教程
https://blog.csdn.net/wizardforcel/article/details/79274443
2.snownlp
https://github.com/isnowfy/snownlp
3.Pattern
https://github.com/clips/pattern
4.TextBlob
http://textblob.readthedocs.io/en/dev/
5.Polyglot
https://pypi.python.org/pypi/polyglot
6.jieba:
https://github.com/fxsjy/jieba
資料庫驅動
mysql-python
https://sourceforge.net/projects/mysql-python/
PyMySQL
https://github.com/PyMySQL/PyMySQL
PyMongo
https://docs.mongodb.com/ecosystem/drivers/python/
pymongo
MongoDB庫
訪問:https://pypi.python.org/pypi/pymongo/
redis
Redis庫
訪問:https://pypi.python.org/pypi/redis/
cxOracle
Oracle庫
訪問:https://pypi.python.org/pypi/cx_Oracle
SQLAlchemy
SQL工具包及對象關系映射(ORM)工具
訪問:http://www.sqlalchemy.org/
peewee,
SQL工具包及對象關系映射(ORM)工具
訪問:https://pypi.python.org/pypi/peewee
torndb
Tornado原裝DB
訪問:https://github.com/bdarnell/torndb
Web
pycurl
URL處理工具
smtplib模塊
發送電子郵件
其他庫暫未分類
1.PyInstaller:
是一個十分有用的第三方庫,它能夠在Windows、Linux、 Mac OS X 等操作系統下將 Python 源文件打包,通過對源文件打包, Python 程序可以在沒有安裝 Python 的環境中運行,也可以作為一個 獨立文件方便傳遞和管理。
2.Ipython
一種互動式計算和開發環境
講解
https://www.cnblogs.com/zzhzhao/p/5295476.html
命令
ls、cd 、run、edit、clear、exist
⑷ 那些Python中的模塊
Python的解釋環境是很好用,但是如果我們需要編寫一個大型的程序的時候,解釋環境就完全不夠用了。這個時候我們需要將python程序保存在一個文件里。通常這個文件是以.py結尾的。
對於大型的應用程序來說,一個文件可能是不夠的,這個時候我們需要在文件中引用其他的文件,這樣文件就叫做模塊。
模塊是一個包含Python定義和語句的文件。文件名就是模塊名後跟文件後綴 .py 。在模塊內部,模塊名可以通過全局變數 __name__ 獲得。
還是之前的斐波拉赫數列的例子,我們在fibo.py文件中存放了函數的實現:
編寫完畢之後,我們可以在Python的解釋環境中導入它:
然後直接使用即可:
常用的函數,我們可以將其賦值給一個變數:
或者,我們在導入的時候,直接給這個模塊起個名字:
或者導入模塊中的函數:
每個模塊都有它自己的私有符號表,該表用作模塊中定義的所有函數的全局符號表。因此,模塊的作者可以在模塊內使用全局變數,而不必擔心與用戶的全局變數發生意外沖突。
前面我們提到了可以使用import來導入一個模塊,並且 __name__ 中保存的是模塊的名字。
和java中的main方法一樣,如果我們想要在模塊中進行一些測試工作,有沒有類似java中main方法的寫法呢?
先看一個例子:
在模塊中,我們需要進行一個判斷 __name__ 是不是被賦值為 "__main__"。
我們這樣來執行這個模塊:
以腳本執行的情況下,模塊的 __name__ 屬性會被賦值為 __main__ , 這也是例子中為什麼要這樣寫的原因。
看下執行效果:
如果是以模塊導入的話,那麼將不會被執行:
使用import導入模塊的時候,解釋器首先會去找該名字的內置模塊,如果沒找到的話,解釋器會從 sys.path變數給出的目錄列表裡尋找。
sys.path的初始目錄包括:
要想查看模塊中定義的內容,可以使用dir函數。
上面的例子列出了當前模塊中定義的內容,包括變數,模塊,函數等。
我們可以給dir加上參數,來獲取特定模塊的內容:
java中有package的概念,用來隔離程序代碼。同樣的在Python中也有包。
我們看一個Python中包的例子:
上面我們定義了4個包,分別是sound,sound.formats, sound.effects, sound.filters。
__init__.py 可以是一個空文件,也可以執行包的初始化代碼或設置 __all__ 變數。
當導入的時候, python就會在 sys.path 路徑中搜索該包。
包的導入有很多種方式,我們可以導入單個模塊:
但是這樣導入之後,使用的時候必須載入全名:
如果不想載入全名,可以這樣導入:
那麼就可以這樣使用了:
還可以直接導入模塊中的方法:
然後這樣使用:
如果一個包裡面的子包比較多,我們可能會希望使用 * 來一次性導入:
那麼如何去控制到底會導入effects的哪一個子包呢?
我們可以在 __init__.py 中定義一個名叫 __all__ 的列表,在這個列表中列出將要導出的子包名,如下所示:
這樣from sound.effects import * 將導入 sound 包的三個命名子模塊。
如果沒有定義 __all__,from sound.effects import * 語句 不會 從包 sound.effects 中導入所有子模塊到當前命名空間;它只會導入包 sound.effects。
Import 可以指定相對路徑,我們使用 . 來表示當前包, 使用 .. 來表示父包。
如下所示:
⑸ python有哪些模塊
Python是一門非常高級的編程語言,內置了許多標准模塊,比如:sys、os、datetime等。
os模塊
os.getcwd() # 獲取當前工作目錄,即當前python腳本工作的目錄路徑
os.chdir("dirname") # 改變當前腳本工作目錄;相當於shell下cd
os.curdir # 返回當前目錄: ('.')
os.pardir # 獲取當前目錄的父目錄字元串名:('..')
os.makedirs('dirname1/dirname2') # 可生成多層遞歸目錄
os.removedirs('dirname1') # 若目錄為空,則刪除,並遞歸到上一級目錄,如若也為空,則刪除,依此類推
os.mkdir('dirname') # 生成單級目錄;相當於shell中mkdir dirname
os.rmdir('dirname') # # 刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當於shell中rmdir dirname
os.listdir('dirname') # 列出指定目錄下的所有文件和子目錄,包括隱藏文件,並以列表方式列印
os.remove() # 刪除一個文件
os.rename("oldname","newname") # 重命名文件/目錄
os.stat('path/filename') # 獲取文件/目錄信息
os.sep # 輸出操作系統特定的路徑分隔符,win下為"\",Linux下為"/"
os.linesep # 輸出當前平台使用的行終止符,win下為" ",Linux下為" "
os.pathsep # 輸出用於分割文件路徑的字元串 win下為;,Linux下為:
os.name # 輸出字元串指示當前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") # 運行shell命令,直接顯示
os.environ # 獲取系統環境變數
os.path.abspath(path) # 返回path規范化的絕對路徑
os.path.split(path) # 將path分割成目錄和文件名二元組返回
os.path.dirname(path) # 返回path的目錄。其實就是os.path.split(path)的第一個元素
os.path.basename(path) #
返回path最後的文件名。如何path以/或結尾,那麼就會返回空值。即os.path.split(path)的第二個元素
os.path.exists(path) # 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) # 如果path是絕對路徑,返回True
os.path.isfile(path) # 如果path是一個存在的文件,返回True。否則返回False
os.path.isdir(path) # 如果path是一個存在的目錄,則返回True。否則返回False
os.path.join(path1[, path2[, ...]]) # 將多個路徑組合後返回,第一個絕對路徑之前的參數將被忽略
os.path.getatime(path) # 返回path所指向的文件或者目錄的最後訪問時間
os.path.getmtime(path) # 返回path所指向的文件或者目錄的最後修改時間
os.path.getsize(path) # 返回path的大小
sys模塊
sys.argv # 命令行參數List,第一個元素是程序本身路徑
sys.exit(n) # 退出程序,正常退出時exit(0)
sys.version # 獲取Python解釋程序的版本信息
sys.maxint # 最大的Int值
sys.path # 返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變數的值
sys.platform # 返回操作系統平台名稱
datetime模塊
datetime.today()返回一個表示當前本期日期時間的datetime對象
datetime.now([tz])返回指定時區日期時間的datetime對象,如果不指定tz參數則結果同上
datetime.utcnow()返回當前utc日期時間的datetime對象
datetime.fromtimestamp(timestamp[, tz])根據指定的時間戳創建一個datetime對象
datetime.utcfromtimestamp(timestamp)根據指定的時間戳創建一個datetime對象
datetime.strptime(date_str, format)將時間字元串轉換為datetime對象
⑹ Python中操作Excel最好用的模塊是
Python中的模塊也稱為庫,在Python中操作Excel的模塊有很多。
優缺點如下:
**1、Pandas模塊**
Pandas是Python的一一個開源數據分析模塊,可用於數據挖掘和數據分析,同時也提供數據清洗功能,可以說它是日前Python數據分析的必備工具之一。Pandas能夠處理類似電子表格的數據,用於數據快速載入、操作、對齊、合並、數據預處理等。
Pandas通過對Excel文件的讀寫實現數據輸入、輸出,Pandas支持.xls和.xlsx格式文件的讀寫,支持只載入每個表的單一工作頁。
import pandas as pd
df=pd.read_excel(r'E:ban.xlsx') #pandas 導入庫獲取excel表的數據內容
df`
**2、xlwings模塊**
xlwings模塊可以實現Python中調用Excel,也可以從Excel調用Python,這個模塊支持支持.xls和.xlsx格式文件的讀寫,支持對這類文件的操作,還支持使用VBA,具有強大的轉換功能,並且可以處理大部分數據類型。
**3、Xlrd模塊**
xlrd模塊可以讀取Excel文件,其對Excel文件的讀取可以實現比較精細的控制。雖然現在使用Pandas模塊讀取和保存Excel文件往往更加方便快捷,但在某些場景下,依然需要xlrd這種更底層的模塊來實現對Excel文件讀取的控制。
xlrd模塊支持.xls、.xlsx格式文件的讀取,但不支持寫信息。
**4、xlwt模塊**
前面xlrd模塊可以讀取Excel文件,但不能寫。而xlwt模塊可以寫、可以修改Excel文件,但不能讀,且只支持.xls格式文件的寫操作。
**5、xlutils模塊**
xlutils也是一個處理Excel文件的模塊,但它不能對Excel文件進行讀和寫的操作,但依賴於xlrd模塊和xlwt模塊。xlutils模塊支持.xls格式文件,不支持.xlsx格式文件。
**6、openpyxl模塊**
openpyxl模塊可以對.xlsx格式的Excel文件進行讀寫操作,特點是讀取快、寫入慢,且不能操作.xls格式文件。
**7、xlsxwriter模塊**
xlsxwriter模塊支持多種Excel功能,可以寫.xlsx格式的Excel文件,而且速度快、佔用內存空間小,但不支持讀或者修改現有的Excel文件。
**8、win32com模塊**
win32com模塊支持.xls、.xlsx格式的Excel文件的讀、寫和修改,讀寫速度快。但win32com模塊存在於pywin32的模塊中,自身沒有完善的文檔,使用起來不太方便。
**9、分析總結**
Pandas模塊把Excel當作數據讀寫的容器,為其強大的數據分析服務,因此讀寫性能的表現中規中矩。xlwings和win32com這兩個模塊都擁有很好的讀寫性能,強大的轉換器可以處理大部分數據類型,同時,可以在程序運行時,在打開的Excel文件中進行實時操作,實現過程的可視化。另外,xlwings模塊的數據結構轉換器使其可以快速地為Excel文件添加二維數據結構,而不需要在Excel文件中重定位數據的行和列,因此筆者認為,從讀寫的便捷性來看,xlwings模塊比較好用一些。
⑺ 常用的python庫有哪些
10個頂級且實用的python庫
1、Dash
Dash是比較新的軟體包,它是用純python構建數據可視化app的理想選擇,因此特別適合處理數據的任何人。Dash是Flask、Plotly.js和React.js的混合體。
2、Pygame
Pygame是SDL多媒體庫的python裝飾器,SDL是一個跨平台開發庫,旨在提供對以下內容的低級介面:音頻、鍵盤、滑鼠、游戲桿、基於OpenGL和Direct3D的圖形硬體。
Pygame具有高度的可移植性,幾乎可以在所有平台和操作系統上運行。盡管它具有完善的游戲引擎,但您也可以使用此庫直接從python腳本播放MP3文件。
3、Pillow
Pillow專門用於處理圖像,您可以使用該庫創建縮略圖,在文件格式之間轉換、旋轉、應用濾鏡、顯示圖像等等。如果您需要對許多圖像執行批量操作,這是理想的選擇。
4、Colorama
Colorama允許你在終端使用顏色,非常適合python腳本,文檔簡短而有趣,可以在Colorama PyPi頁面上找到。
5、JmesPath
在python中使用JSON非常容易,因為JSON在python字典上的映射非常好。此外,python帶有自己出色的json庫,用於解析和創建JSON。對我來說,這是它最好的功能之一,如果我需要使用JSON,可以考慮使用python。
JmesPath使python處理JSON更加容易,它允許您明確地指定如何從JSON文檔中提取元素。
6、Requests
Requests建立在世界上下載量最大的python庫urllib3上,它令Web請求變得非常簡單,功能強大且用途廣泛。
Requests可以完成您能想到的所有高級工作,比如:認證,使用cookie,執行POST、PUT、DELETE等,使用自定義證書,使用會話Session、使用代理等。
7、Simplejson
python中的本地json模塊有什麼問題?沒有!實際上,python的json是Simplejson。意思是:python採用了Simplejson的一個版本,並將其合並到每個發行版中,但是使用Simplejson具有一些優點:它適用於更多python版本、它比python隨附的版本更新頻率更高、它具有用C編寫的部分,因此非常快速。
8、Emoji
Emoji庫非常意思,但並非每個人都喜歡表情包,分析視角媒體數據時,Emoji包非常有用。
9、Python-dateutil
Python-dateutil模塊提供了對標准datetime模塊的強大擴展。我的經驗是:常規的python日期時間功能在哪裡結束,而Python-dateutil就出現了。
10、BeautifulSoup
如果您從網站上提取了一些HTML,則需要對其進行解析以獲取實際所需的內容。BeautifulSoup是一個python庫,用於從HTML和XML文件中提取數據。它提供了導航,搜索和修改解析樹的簡單方法。它非常強大,即使損壞了,也能夠處理各種HTML,這是一個非常強大的功能。
它的一些主要功能:
①BeautifulSoup會自動將傳入文檔轉換為Unicode,將傳出文檔轉換為UTF-8,您無需考慮編碼。
②BeautifulSoup位於流行的python解析器的頂部,使您可以嘗試不同的解析策略或提高靈活性。