Python 应用领域
生活随笔
收集整理的這篇文章主要介紹了
Python 应用领域
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python 應用領域??
2011-02-13 13:05:49|??分類: 系統管理 |舉報 |字號?訂閱
Python?不僅僅是一個設計優秀的程序語言,它能夠完成現實中的各種任務,包括開發者們日復一日所做的事情。作為編制其他組件、實現獨立程序的工具,它通常應用于各種領域。實際上,作為一種通用語言,Python?的應用角色幾乎是無限的:你可以在任何場合應用Python,?從網站和游戲開發到機器人和航天飛機控制。盡管如此,Python?的應用領域分為如下幾類。下文將介紹一些Python?如今最常見的應用領域,以及每個應用領域內所用的一些工具。我們不會對各個工具進行深入探討,如果你對這些話題感興趣,請從Python?網站或其他一些資源中獲取更多的信息。
系統編程
Python?對操作系統服務的內置接口,使其成為編寫可移植的維護操作系統的管理工具和部件(有時也被稱為Shell?工具)的理想工具。Python?程序可以搜索文件和目錄樹,可以運行其他程序,用進程或線程進行并行處理等等。
Python?的標準庫綁定了POSIX?以及其他常規操作系統(OS?)工具:環境變量、文件、套接字、管道、進程、多線程、正則表達式模式匹配、命令行參數、標準流接口、Shell?命令啟動器、文件名擴展等。此外,很多Python?的系統工具設計時都考慮了其可移植性。例如,復制目錄樹的腳本無需做任何修改就可以在幾乎所有的Python?平臺上運行。
用戶圖形接口
Python?的簡潔以及快速的開發周期十分適合開發GUI?程序。Python?內置了TKinter?的標準面向對象接口Tk?GUI?API?,使Python?程序可以生成可移植的本地觀感的GUI?。Python/?Tkinter?GUI?不做任何改變就可以運行在微軟Windows?、X?Windows(UNIX?和Linux?)以及Mac?OS(Classic?和OS?X?都支持)等平臺上。一個免費的擴展包PMW?,為Tkinter?工具包增加了一些高級部件。此外,基于C++?平臺的工具包wxPython?GUI?API?可以使用Python?構建可移植的GUI?。
諸如PythonCard?和Dabo?等一些高級工具包是構建在wxPython?和Tkinter?的基礎API?之上的。通過適當的庫,你可以使用其他的GUI?工具包,例如,Qt?、GTK?、MFC?和Swing?等。對于運行于瀏覽器中的應用或在一些簡單界面的需求驅動下,Jython(Java?版本的Python?,我們將會在第2章中進行介紹)和Python?服務器端CGI?腳本提供了其他一些用戶界面的選擇。
Internet?腳本
Python?提供了標準Internet?模塊,使Python?能夠廣泛地在多種網絡任務中發揮作用,無論是在服務器端還是在客戶端都是如此。腳本可以通過套接字進行通信;從發給服務器端的CGI?腳本的表單中解析信息;通過URL?獲取網頁;從獲取的網頁中解析HTML?和XML?文件;通過XML-RPC?、SOAP?和Telnet?通信等。Python?的庫使這一切變得相當簡單。
不僅如此,從網絡上還可以獲得很多使用Python?進行Internet?編程的第三方工具。例如,HTMLGen?可以從Python?類的描述中生成HTML?文件,mod_python?包可以使在Apache?服務器上運行的Python?程序更具效率并支持Python?Server?Page?這樣的服務器端模板,而且支持客戶端運行的服務器端Applet?。此外,Python?涌現了許多Web?開發工具包,例如,Django?、TurboGears?、Pylons?、Zope?和WebWare?,使Python?能夠快速構建功能完善和高質量的網站。
組件集成
在介紹Python?作為控制語言時,曾涉及它的組件集成的角色。Python?可以通過C/C++?系統進行擴展,并能夠嵌套C/C++?系統的特性,使其能夠作為一種靈活的粘合語言,腳本化處理其他系統和組件的行為。例如,將一個C庫集成到Python?中,能夠利用Python?進行測試并調用庫中的其他組件;將Python?嵌入到產品中,在不需要重新編譯整個產品或分發源代碼的情況下,能夠進行產品的單獨定制。
為了在腳本中使用,在Python?連接編譯好組件時,例如,SWIG?和SIP?這樣的代碼生成工具可以讓這部分工作自動完成。更大一些的框架,例如,Python?的微軟Windows?所支持的COM?、基于Java?實現的Jython?、基于.NET?實現的IronPython?和各種CORBA?工具包,提供了多種不同的腳本組件。例如,在Windows?中,Python?腳本可利用框架對微軟Word?和Excel?文件進行腳本處理。
數據庫編程
對于傳統的數據庫需求,Python?提供了對所有主流關系數據庫系統的接口,例如,Sybase?、Oracle?、Informix?、ODBC?、MySQL?、PostgreSQL?、SQLite?。Python?定義了一種通過Python?腳本存取SQL?數據庫系統的可移植的數據庫API?,這個API?對于各種底層應用的數據庫系統都是統一的。例如,因為廠商的接口實現為可移植的API?,所以一個寫給自由軟件MySQL?系統的腳本在很大程度上不需改變就可以工作在其他系統上(例如,Oracle?)--?你僅需要將底層的廠商接口替換掉就可以實現。
Python?標準的pickle?模塊提供了一個簡單的對象持久化系統:它能夠讓程序輕松地將整個Python?對象保存和恢復至文件和文件類的對象中。在網絡上,同樣可以找到名叫ZODB?的第三方系統,它為Python?腳本提供了完整的面向對象數據庫系統,系統SQLObject?可以將關系數據庫映射至Python?的類模塊。并且,從Python?2.5?版本開始,SQLite?已經成為Python?自帶標準庫的一部分了。
快速原型
對于Python?程序來說,使用Python?或C編寫的組件看起來都是一樣的。正因為如此,我們可以在一開始利用Python?做系統原型,之后再將組件移植到C或C++?這樣的編譯語言上。和其他的原型工具不同,當原型確定后,Python?不需要重寫。系統中不需要像C++?這樣執行效率的部分可以保持不變,從而使維護和使用變得輕松起來。
數值計算和科學計算編程
我們之前提到過的NumPy?數值編程擴展包括很多高級工具,例如,矩陣對象、標準數學庫的接口等。通過將Python?與出于速度考慮而使用編譯語言編寫的數值計算的常規代碼進行集成,NumPy?將Python?變成一個縝密嚴謹并簡單易用的數值計算工具,這個工具通常可以替代已有的代碼,而這些代碼都是用FORTRAN?或C++?等編譯語言編寫的。其他一些數值計算工具為Python?提供了動畫、3D?可視化、并行處理等功能的支持。
游戲、圖像、人工智能、XML?、機器人等
Python?的應用領域很多,遠比本書提到的多得多。例如,可以利用pygame?系統使用Python?對圖形和游戲進行編程;用PIL?和其他的一些工具進行圖像處理;用PyRo?工具包進行機器人控制編程;用xml?庫、xmlrpclib?模塊和其他一些第三方擴展進行XML?解析;使用神經網絡仿真器和專業的系統shell?進行AI?編程;使用NLTK?包進行自然語言分析:甚至可以使用PySol?程序下棋娛樂??梢詮腣aults?of?Parnassus?以及新的PyPI?網站(請在Google?或http://www.python.org?上獲得具體鏈接)找到這些領域的更多支持。
一般來說,這些特定領域當中有許多在很大程度上都是Python?組件集成角色的再次例證。采用C這樣的編譯語言編寫庫組件,增加Python?至其前端,這樣的方式使Python?在不同領域廣泛地發揮其自身價值。對于一種支持集成的通用型語言,Python?的應用極其廣泛。
?
企業與政務應用?
??
??目前,Python已經成功的實現企業級應用,在全球,已經有很多公司采用Python進行企業級軟件的開發和應用,比如:ERP和CRM這樣的應用。同時,通過Python技術,成功的實現了許多政務應用。
?
用Python寫的較大的系統有:
??Zope:一個應用程序服務器,具有內容管理、團隊開發、XML、面向對象、SOAP接口等一系先進特性,且開放源碼。參見:www.zope.com。
??Gadfly:一個用Python寫的面向對象關系型數據庫,具有小巧、快速、可移植性好,具有大部分SQL語言特性,且開放源碼。參見:http://www.chordate.com/gadfly.html。
??還有一些比較有名的公司也在用Python進行原型的開發,如Microsoft、IBM等,還有:
??紅帽(Red?Hat?)曾用Python和Tk一起成功開發配置和管理操作系統的可視界面。整個系統可以全面控制Linux操作系統,并根據用戶選擇對配置文件作自動更新。
??Infoseek在其公用搜索引擎使用了Python。該公司還用Python對其軟件進行定制,使最終用戶能對該網站內容進行方便下載。??
Python?和其他語言比較
比Tcl?強大。Python?支持"大規模編程",使其適宜于開發大型系統。
有著比Perl?更簡潔的語法和更簡單的設計,這使得Python?更具可讀性、更易于維護,有助于減少程序bug?。
比Java?更簡單、更易于使用。Python?是一種腳本語言,Java?從C++?這樣的系統語言中繼承了許多語法和復雜性。
比C++?更簡單、更易于使用,但通常也不與C++?競爭。因為Python?作為腳本語言,常常扮演多種不同的角色。
比Visual?Basic?更強大也更具備跨平臺特性。由于Python?是開源的,也就意味著它不可能被某一個公司所掌控。
比Ruby?更成熟、語法更具可讀性。與Ruby?和Java?不同的是,OOP?對于Python?是可選的:這意味著Python?不會強制用戶或項目選擇OOP?進行開發。
具備SmallTalk?和Lisp?等動態類型的特性,但是對開發者及定制系統的終端用戶來說更簡單,也更接近傳統編程語言的語法。
特別對不僅僅做文本文件掃描還有也許未來會被人們讀到(或者說你)的程序而言,很多人會發現Python?比目前任何的可用的腳本或編程語言都劃得來。不僅如此,除非你的應用要求最尖端的性能,Python?往往是C、C++?和Java?等系統開發語言的一個不錯的替代品:Python?將會減少很多編寫、調試和維護的麻煩。
?
目前使用Python的企業
?
Google?在其網絡搜索系統中廣泛應用了Python?,并且聘用了Python?的創作者。
YouTube?視頻分享服務大部分是由Python?編寫的。
流行的P2P?文件分享系統Bittorrent?是一個Python?程序。
Intel?、Cisco?、Hewlett-Packard?、Seagate?、Qualcomm?和IBM?使用Python?進行硬件測試。
Industrial?Light?&?Magic?、Pixar?等公司使用Python?制作動畫電影。
在經濟市場預測方面,JPMorgan?Chase?、UBS?、Getco?和Citadel?使用Python?。
NASA?、Los?Alamos?、Fermilab?、JPL?等使用Python?實現科學計算任務。
IRobot?使用Python?開發了商業機器人真空吸塵器。
ESRI?在其流行的GIS?地圖產品中使用Python?作為終端用戶的定制工具。
NSA?在加密和智能分析中使用Python?。
IronPort?電子郵件服務器產品中使用了超過100?萬行的Python?代碼實現其作業。
OLPC?使用Python?建立其用戶界面和動作模塊。
總結
以上是生活随笔為你收集整理的Python 应用领域的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sublime Text
- 下一篇: 遗传突变 | 正常与突变蛋白三维结构模型