Manual Pembelajaran Python
/ 初覽Python模塊文件
初覽Python模塊文件
什么是模塊?
每一個.py文件都是一個模塊,其他文件可以通過導入一個模塊讀取這個模塊的內容,相當于C中的include……一個大型程序往往呈現(xiàn)出多模塊的形式。其中一個模塊文件被設計為主文件(or頂層文件)。
模塊的導入:
這里我們做一個最簡單的example,更為詳細的后面講。這里把剛才寫的script1放在我們安裝Python的位置:

然后開始-運行-python:

10. import,from 和 reload
- 模塊只可以導入一次
導入是一個開銷很大的操作,以至于每個程序運行只可以導入一次。想再次運行除非調用內置reload函數(shù):

import和reload不同的是,import不需要括號,是一個語句,而reload是一個函數(shù),其返回值是一個python模塊對象。
- 模塊扮演了工具庫的角色:模塊往往是變量名的封裝,可被視作命名空間;在一個包中的變量名就是屬性,或者說,屬性就是綁定在特定對象上的變量名。一個模塊通常可以有兩個兩個Python語句讀入:import 和 from,以及reload函數(shù)的使用
- import語句將模塊作為一個整體引用,相當于引入一個類的object。看下面的效果就明白了。myfile作為一個模塊被引用,然后script1就可以使用myfile的屬性了。

- 另一種引用方法:
圖中所示,from和import很相似,只不過后者增加了對變量名的額外賦值,也就是拷貝模塊的屬性,因此能夠以title導入,而不是myfile這個對象。
- 模塊的知識我們將在后面的章節(jié)具體的講,這里再給出一個import的例子。有朋友提出疑問,為什么import不是像C++中#include一樣后續(xù)可以調用這個這個模塊的方法和屬性,而是直接執(zhí)行了呢?這里給出一個解釋,并不是不可以調用這個模塊的方法,而是上面的例子給出的比較簡單,沒有涉及類的封裝,只有幾個執(zhí)行語句。下面在給出的這個例子是一個簡單的模塊例子。該例中,Worker.py定義了Worker類,外部通過import Worker導入該模塊,進行相關操作。

- import&from總結版:


dir(myfile)是獲得myfile中的所有attribute,其中,前面帶下劃線的是Python預定義的內置變量名
模塊的其他概念:
- 模塊是Python程序最大的程序結構
- 每個模塊文件是一個獨立完備的變量包裝,即一個命名空間
- execfile('myfile.py')是另一種程序執(zhí)行方式,但是從本質上講他并沒有導入模塊
常用Python模塊
- difflib python diff比較模塊
- datetime python 處理日期與時間的模塊
- chardet 字符串/文件 編碼檢測(很好用)
adodb:我們領導推薦的數(shù)據(jù)庫連接組件 bsddb3:BerkeleyDB的連接組件 Cheetah-1.0:我比較喜歡這個版本的cheetah cherrypy:一個WEB framework ctypes:用來調用動態(tài)鏈接庫 DBUtils:數(shù)據(jù)庫連接池 django:一個WEB framework docutils:用來寫文檔的 dpkt:數(shù)據(jù)包的解包和組包 MySQLdb:連接MySQL數(shù)據(jù)庫的 py2exe:用來生成windows可執(zhí)行文件 Pylons:我們領導推薦的web framework pysqlite2:SQLite的連接組件 pythonwin:Python的Windows擴展 setuptools:無奈,PEAK的一套python包管理機制 sqlalchemy:數(shù)據(jù)庫連接池 SQLObject:數(shù)據(jù)庫連接池 twisted:巨無霸的網(wǎng)絡編程框架 wxPython-2.6:因為需要保持與linux相同的版本才沒用最新的,GUI編程框架 pypcap:抓包的 python-dnet:控制網(wǎng)絡安全的其他設備 pyevent:Python的事件支持 pydot:畫圖的,graphiz sendpkt:Python發(fā)包 simplejson:JSON的支持 DPKT:raw-scoket網(wǎng)絡編程 Cx-oracle:連接oracle的好東東 Mechanize:爬蟲連接網(wǎng)站常用 PIL:圖像處理工具包 reportlab for PDF 文件。 PyQt4 for GUI界面 feedparser: rss解析 chardet:編碼檢測 scons: 項目構建工具,寫好了模板用起來還是很方便的 scapy: 網(wǎng)絡包構建分析框架,可編程的wireshark,有興趣的google “Silver Needle in the Skype” pefile: windows pe文件解析器 winpdb: 自己的程序或者用別的庫不太明白的時候就靠它了 pywmi: 省了好多折騰功夫 pylint: 培養(yǎng)良好的編碼習慣 下面是準備用的,不做評論: pygccxml pyparsing pymacs idapython paimei pysvn pyLucene wikidpad 1.Python操作PDF文件 2.Python連接PostgreSQL引擎 3.Python的.NET2.0的曲線表 http://pybrary.net/ —————————————————– 1.Python Image Libary 2.Tkinter Libary http://www.pythonware.com/index.htm —————————————————– 1.Karrigell http://karrigell.sourceforge.net/ —————————————————– 1.The Standard Python Libary http://effbot.org/librarybook/ —————————————————– 1.Python操作PDF的Libary http://reportlab.org/ —————————————————– 1.Python cURL Libary http://pycurl.sourceforge.net/ —————————————————– 1.urlgrabber http://linux.duke.edu/projects/urlgrabber/ —————————————————– 1.MySQL-Python http://mysql-python.sourceforge.net/ —————————————————– 1.pyScripter 2.Python for Delphi http://mmm-experts.com/Products.aspx —————————————————– 1.Python Cookbook http://aspn.activestate.com/ASPN/Python/Cookbook/ —————————————————– 1.pygame http://www.pygame.org/news.html —————————————————— 1.pymedia http://www.pymedia.org —————————————————— 1.pydbf http://dbfpy.sourceforge.net/ —————————————————— 1.Pexpect http://pexpect.sourceforge.net/ —————————————————— 1.dabo desktop application frameworks http://dabodev.com/ —————————————————— 1.pySerial http://pyserial.sourceforge.net/ http://wiki.woodpecker.org.cn/moin/PySerial —————————————————— 1.python’s doc http://wiki.woodpecker.org.cn/moin/PythonZhDoc —————————————————— 1.The Visual Module of VPython(3D) http://vpython.org/index.html —————————————————— 1.PyLucene http://pylucene.osafoundation.org/ —————————————————— 1.DBUils http://www.webwareforpython.org/DBUtils —————————————————— 1.http://happyiww.popo.blog.163.com/blog/ a good people’s blog —————————————————— 1.AppleScript,OSAComponents,HtmlCalendar http://freespace.virgin.net/hamish.sanderson/index.html —————————————————— 1.Pypcap http://code.google.com/p/pypcap/ http://monkey.org/~dugsong/dpkt/ http://www.winpcap.org/install/default.htm python-memcached client module for memcached Kodos,python的正則表達式調試工具, PLY (Python Lex-Yacc) http://www.dabeaz.com/ply/ 正在用它寫匯編器. wxPython - GUI Framework omniORBpy - CORBA Library ZODB3 - an OODB implement ReportLab - PDF generating solution numpy+scipy+matplotlib hachoir 各種多媒體元數(shù)據(jù)解析 python-orge 演示用 數(shù)據(jù)庫的: sqlalchemy sqlobject MySQL-python (easy_install的時候就是這個名字) routes beaker 兩個模板引擎: genshi mako paster 另外還有知道的 PyCrypto 加密的 paramiko 這個可以幫你寫sftp,比twisted里面的那個好用一些 twisted 寫服務器玩的 PyOpenGL PyGame Psyco 傳說可以加速你的python程序 PIL (Python Image Library) 處理圖片 PyObjC 這個是蘋果上用的,寫Cocoa程序 Python desktop client GUI application: wxPython PyOpenGL PyXML ZSI davlib.py ChartDirector 一個支持多種語言的圖表庫,無論是效果還是效率,都比jfreechart高。