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必學的模塊有哪些
簡單來說,模塊就是一堆代碼實現某個功能,它們是已經寫好的.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庫與模塊的區別是什麼
Python庫與模塊的區別是什麼
模塊、庫主要區別在於他們的定義與所指范圍不同。
模塊:包含並且有組織的代碼片段為模塊,sample.py 其中文件名smaple為模塊名字。
模塊是一種以.py為後綴的文件,在.py文件中定義了一些常量和函數。模塊的名稱是該.py文件的名稱。模塊的名稱作為一個全局變數__name__的取值可以被其他模塊獲取或導入。模塊的導入通過ipmort來實現。
庫:庫的概念是具有相關功能模塊的集合。這也是正是Python的一大特色之一,即具有強大的標准庫,還有第三方庫以及自定義模塊。
Python中的庫是借用其他編程語言的概念,沒有特別具體的定義,Python庫著重強調其功能性。在Python中,具有某些功能的模塊和包都可以被稱作庫。模塊有諸多函數組成,包由諸多模塊機構化組成,庫中也可以包含包、模塊和函數。
更多技術請關注Python視頻教程。
㈣ python中如何在不同模塊間共享全局變數
除了函數內部,python的變數本身作用域就是全局的。
不同的模塊互相導入時,將變數一同導入就行了,而函數內修改這些全局變數時需要先用global修飾變數名。
㈤ Python一個模塊怎樣修改另一個模塊定義的全局變數值
(1)import 模塊
模塊.變數名
(2)from 模塊 import 變數名,這樣可以直接使用
不過不太應用後面的那種,可能會出現重名的變數,無法分辨.
㈥ python實現在不同模塊中共享全局變數
定義一個py文件使用get和set方法設置和獲取變數
如在gol.py中
使用時如下在gol_test1.py中:
在gol_test2.py中
㈦ python中都有哪些模塊呢
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下為"\t\n",Linux下為"\n"
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模塊內全局變數 什麼時候初始化
腳本初載入時,python會順序執行所有可以執行的東西。 如果是函數與類定義,它就順序將定義放到全局表裡。
這里全局變最也是一樣。python從import語句開始執行,執行到這句話today 就被初始化了。
如果這個模塊被其它模塊import ,那個在import 的時候, today會被載入。
不過跨模塊的全局變數,在python里有些古怪。要小心使用。
㈨ python中怎麼定義全局變數
復制代碼
count = 0
def Fuc(count):
print count
count += 1
for i in range(0, 10):
Fuc(count)
復制代碼
結果是:
不是我們想要的結果。
解決之道一——全局變數:
復制代碼
global a
a = 3
def Fuc():
global a
print a
a = a + 1
if __name__ == "__main__":
global a
for i in range(10):
Fuc()print 'hello'
print a
復制代碼
結果:
注意要領:
哪裡需要全局變數,哪裡聲明一下;但是函數千萬不要傳參數, Fuc(a)是不行的。
解決之道二——列表:
復制代碼
a = [3]
def Fuc():
print a[0]
a[0] = a[0] + 1
if __name__ == "__main__":
global a
for i in range(10):
Fuc()
print 'hello'
print a[0]
復制代碼
結果同上
列表可以比肩簡單的實現,學習之。
㈩ python中什麼是模塊
模塊可以理解為程序包,像繪圖色matplotlib,數學計算色numpy,import進python程序即可調用其中函數完成特定功能