㈠ python中的模塊、庫、包有什麼區別
模塊,庫,包主要區別在於他們的定義與所指范圍不同。
python模塊,包含並且有組織的代碼片段為模塊,sample.py其中文件名smaple為模塊名字。
而包是一個有層次的文件目錄結構,它定義了由無數個模塊或啟搏隱無數個子包組成的python應用程序執行環境。
庫的概念是具有相關功能模塊的集合。這也是正是Python的一大特色之一,即具有強大的標准庫,還有第三方庫以及自定義模塊。
模塊和包是「存儲層面」
模塊就是一個讓你import的文件包就是讓你importfrom的地方例如你下載好某個包,然後把這個包解壓到某個特定路徑,然後就可以fromxxxximportyyyy.py了剩下的概銀梁念都是「邏輯層面」,是不分語言的類我不想多解釋,隨便找本編程入門書去看吧庫和框架都是用來定義某個包的使用目的的。
框架相當於定了包的用途,在這個用途上你進行二次開發(例如django相當於是一個websrv端),一般最多也就你在main里去調用它的入口或者通過decorator(@)來注冊什麼東西到框架里庫則是相當於一個工具箱,你可以從中拿出任意工具在任意地點使用一悄廳個包里可以有庫,也可以有框架,也可以兩者都有
㈡ 盤點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模塊的幾種類型簡介
view plain to clipboardprint?
import os
import stat
import time<DIV></DIV>
fileStats = os.stat ( 'test.txt' )
fileInfo = {
'Size' : fileStats [ stat.ST_SIZE ],
'LastModified' : time.ctime ( fileStats [ stat.ST_MTIME ] ),
'LastAccessed' : time.ctime ( fileStats [ stat.ST_ATIME ] ),
'CreationTime' : time.ctime ( fileStats [ stat.ST_CTIME ] ),
'Mode' : fileStats [ stat.ST_MODE ]
}
for infoField, infoValue in fileInfo:
print infoField, ':' + infoValue
if stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):
print 'Directory. '
else:
print 'Non-directory.'
import os
import stat
import time
fileStats = os.stat ( 'test.txt' )
fileInfo = {
'Size' : fileStats [ stat.ST_SIZE ],
'LastModified' : time.ctime ( fileStats [ stat.ST_MTIME ] ),
'LastAccessed' : time.ctime ( fileStats [ stat.ST_ATIME ] ),
'CreationTime' : time.ctime ( fileStats [ stat.ST_CTIME ] ),
'Mode' : fileStats [ stat.ST_MODE ]
}
for infoField, infoValue in fileInfo:
print infoField, ':' + infoValue
if stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):
print 'Directory. '
else:
print 'Non-directory.'
㈣ python新手學習模塊
要執行的時候需要 加一個參數。比如build, install, 之類的。
㈤ 常用的生物信息學python庫有哪些
常用的生物信息學python庫:
Tkinter
Python默認的圖形界面介面。Tkinter是一個和Tk介面的Python模塊,Tkinter庫提供了對Tk API的介面,它屬於Tcl/Tk的GUI工具組。
PyGTK
用於python GUI程序開發的GTK+庫。GTK就是用來實現GIMP和Gnome的庫。
PyQt
用於python的Qt開發庫。QT就是實現了KDE環境的那個庫,由一系列的模塊組成,有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml,包含有300個類和超過5750個的函數和方法。PyQt還支持一個叫qtext的模塊,它包含一個QScintilla庫。該庫是Scintillar編輯器類的Qt介面。
wxPython
GUI編程框架,熟悉MFC的人會非常喜歡,簡直是同一架構(對於初學者或者對設計要求不高的用戶來說,使用Boa Constructor可以方便迅速的進行wxPython的開發)
PIL
python提供強大的圖形處理的能力,並提供廣泛的圖形文件格式支持,該庫能進行圖形格式的轉換、列印和顯示。還能進行一些圖形效果的處理,如圖形的放大、縮小和旋轉等。是Python用戶進行圖象處理的強有力工具。
Psyco
一個Python代碼加速度器,可使Python代碼的執行速度提高到與編譯語言一樣的水平。
xmpppy
Jabber伺服器採用開發的XMPP協議,Google Talk也是採用XMPP協議的IM系統。在Python中有一個xmpppy模塊支持該協議。也就是說,我們可以通過該模塊與Jabber伺服器通信,是不是很Cool。
PyMedia
用於多媒體操作的python模塊。它提供了豐富而簡單的介面用於多媒體處理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。可在Windows和Linux平台下使用。
Pmw
Python megawidgets,Python超級GUI組件集,一個在python中利用Tkinter模塊構建的高級GUI組件,每個Pmw都合並了一個或多個Tkinter組件,以實現更有用和更復雜的功能。
PyXML
用Python解析和處理XML文檔的工具包,包中的4DOM是完全相容於W3C DOM規范的。它包含以下內容:
xmlproc: 一個符合規范的XML解析器。Expat: 一個快速的,非驗證的XML解析器。還有其他和他同級別的還有 PyHtml PySGML。
PyGame
用於多媒體開發和游戲軟體開發的模塊。
PyOpenGL
模塊封裝了「OpenGL應用程序編程介面」,通過該模塊python程序員可在程序中集成2D和3D的圖形。
NumPy、NumArray、SAGE
NumArray是Python的一個擴展庫,主要用於處理任意維數的固定類型數組,簡單說就是一個矩陣庫。它的底層代碼使用C來編寫,所以速度的優勢很明顯。SAGE是基於NumPy和其他幾個工具所整合成的數學軟體包,目標是取代Magma, Maple, Mathematica和Matlab 這類工具。
MySQLdb
用於連接MySQL資料庫。還有用於zope的ZMySQLDA模塊,通過它就可在zope中連接mysql資料庫。
Sqlite3
用於連接sqlite資料庫。
Python-ldap
提供一組面向對象的API,可方便地在python中訪問ldap目錄服務,它基於OpenLDAP2.x。
smtplib
發送電子郵件。
ftplib
定義了FTP類和一些方法,用以進行客戶端的ftp編程。如果想了解ftp協議的詳細內容,請參考RFC959。
PyOpenCL
OpenCL的Python介面,通過該模塊可以使用GPU實現並行計算。
㈥ Python之OS模塊操作有哪些這18個高頻函數是重中之重,你會用
案例一:新建一個txt文件並向文件中寫入數據。
代碼與結果如上圖所示。
案例:os.rename('kitty1.txt',''kitty2.txt')
2.1 輸出結果:將kitty1文件改為kitty2
2.2 文件解析說明:文件重命名,將test1文件改為test2文件。
案例:os.remove('kitty2.txt')
3.1 輸出結果:kitty2.txt文件被刪除
3.2 解析說明:刪除文件。
案例:os.mkdir('kitty')
4.1 輸出結果:創建一個文件夾名字為kitty
4.2 解析說明:創建文件夾。
4.3 解析說明:list.pop()就直接從list中的最末尾處刪除一個元素。
案例:os.rmdir('test')
5.1 輸出結果:刪除一個文件夾
5.3 解析說明:刪除文件夾.
解析說明:可以取代操作系統特定的路徑分割符
案例一:print(os.getcwd())
輸出結果:D:PythonProjectPython編程基礎
解析說明:相當於linux下的pwd,獲取當前目錄。
案例一:os.chdir(os.getcwd()+os.sep+'kitty')
解析說明:進入到某個目錄下。
解析說明:相當於linux下的ls,顯示當前目錄下的文件。
解析說明:創建一個aa文件夾,再在裡面創建一個bb文件夾。
解析說明:刪除aa文件夾和aa文件夾中的bb文件夾。
解析說明:判斷是否是個文件。
解析說明:判斷是否是個文件夾。
解析說明:判斷文件是否存在。
解析說明:獲取文件大小。
解析說明:返迴文件的絕對路徑。
解析說明:獲取文件的文件名,注意參數需要傳入絕對路徑。
解析說明:獲取文件的所在目錄,注意參數需要傳入絕對路徑。
㈦ Python寫100個隨機整數並寫入文件
以下是一個Python程序,可以生成100個隨機整數(范團族圍在1到100之間),並將它們寫斗或胡入文件random_numbers.txt中。其中,使用了random模塊生成隨機數,以及with open() as語句來打開文件和自動關閉文件。
python復制代碼import random# 生成100個隨機整數numbers = [random.randint(1, 100) for i in range(100)]# 將隨機數寫入文件with open('random_numbers.txt', 'w') as f: for num in numbers:
f.write(str(num) + '\n')print('隨機數已寫入文件')
運行空攔該程序後,會在當前目錄下生成random_numbers.txt文件,並將100個隨機整數寫入其中。