Python 应用领域
2010年08月08日
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 程序下棋娱乐。可以从Vaults 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 建立其用户界面和动作模块。
发表评论
-
动静库
2012-01-20 12:18 724动静库 2010年12月16日 ... -
Gcc简易教程
2012-01-20 12:17 681Gcc简易教程 2010年06月13日 版权属于GodT ... -
qqCPUID 的一个汇编实例
2012-01-20 12:17 848qqCPUID 的一个汇编实例 ... -
编译程序与操作系统的关系
2012-01-20 12:17 861编译程序与操作系统的 ... -
strcpy没有声明 c++头文件详解
2012-01-20 12:17 2345strcpy没有声明 c++头文件详解 2010年10月23 ... -
python 常用类库!(转)
2012-01-19 17:00 668python 常用类库!(转) 2011年01月21日 ... -
前言:什么是Python?
2012-01-19 16:59 706前言:什么是Python? 2010年11月14日 py ... -
对比java和python
2012-01-19 16:59 1196对比java和python 2011年04 ... -
(转载)Python 应用发布技术
2012-01-19 16:59 722(转载)Python 应用发布技 ... -
最真的爱(转)
2012-01-17 06:44 589最真的爱(转) 2011年11月25日 -
如何做好日用品的直销?
2012-01-17 06:44 656如何做好日用品的直销? 2011年11月22日 濡 -
安莉芳内衣亮相2011深圳国际内衣文化周
2012-01-17 06:44 648安莉芳内衣亮相2011深圳国际内衣文化周 2011年11月2 ... -
歌瑞尔内衣:一不小心“玩”大了
2012-01-17 06:44 690歌瑞尔内衣:一不小心“玩”大了 2011年11月26日 ... -
2011-12-12
2012-01-17 06:44 5462011-12-12 2011年12月12日 乱码体: -
给大学生学习ARM和FPGA的建议(转)
2012-01-16 05:33 1033给大学生学习ARM和FPGA的 ... -
HOOK API 函数跳转详解
2012-01-16 05:33 1032HOOK API 函数跳转详解 20 ... -
java的面试socket
2012-01-16 05:33 904java的面试socket 2010年05 ... -
Winsock 常用API函数
2012-01-16 05:26 651Winsock 常用API函数 2011年04月29日 ...
相关推荐
Python应用领域和职业发展实用教程+源码+说明文档+教程.zip。教程内包含大量的实用教程,贴合职业发展,受到广大开发者的一致好评,适用于在学的学生,踏入社会的新新工作者、相对自己知识查缺补漏或者想在Python等...
Python应用领域和职业发展实用教程+源码+说明文档+教程.zip。教程内包含大量的实用教程,贴合职业发展,受到广大开发者的一致好评,适用于在学的学生,踏入社会的新新工作者、相对自己知识查缺补漏或者想在Python等...
Python应用领域和职业发展实用教程+源码+说明文档+教程.zip。教程内包含大量的实用教程,贴合职业发展,受到广大开发者的一致好评,适用于在学的学生,踏入社会的新新工作者、相对自己知识查缺补漏或者想在Python等...
Python应用领域和职业发展实用教程+源码+说明文档+教程.zip。教程内包含大量的实用教程,贴合职业发展,受到广大开发者的一致好评,适用于在学的学生,踏入社会的新新工作者、相对自己知识查缺补漏或者想在Python等...
Python应用领域和职业发展实用教程+源码+说明文档+教程.zip。教程内包含大量的实用教程,贴合职业发展,受到广大开发者的一致好评,适用于在学的学生,踏入社会的新新工作者、相对自己知识查缺补漏或者想在Python等...
Python应用领域和职业发展实用教程+源码+说明文档+教程.zip。教程内包含大量的实用教程,贴合职业发展,受到广大开发者的一致好评,适用于在学的学生,踏入社会的新新工作者、相对自己知识查缺补漏或者想在Python等...
Python应用领域和职业发展实用教程+源码+说明文档+教程.zip。教程内包含大量的实用教程,贴合职业发展,受到广大开发者的一致好评,适用于在学的学生,踏入社会的新新工作者、相对自己知识查缺补漏或者想在Python等...
Python应用领域和职业发展实用教程+源码+说明文档+教程.zip。教程内包含大量的实用教程,贴合职业发展,受到广大开发者的一致好评,适用于在学的学生,踏入社会的新新工作者、相对自己知识查缺补漏或者想在Python等...
"文本数据挖掘与Python应用" 文本数据挖掘是一种从大量文本数据中提取有价值信息的过程,如关键词、主题、情感等。文本数据挖掘技术在各个领域的应用越来越广泛,例如自然语言处理、信息检索、情感分析等领域。 ...
本教程旨在帮助读者快速掌握 Python 入门基础知识,了解 Python 的发展历程、特点、应用领域,并掌握 PyCharm 编写简单 Python 程序、Python 开发环境的配置和 Python 程序执行原理等内容,为读者提供了一个系统的 ...
"zlg的Python应用"这个主题聚焦于利用Python进行周立功(ZLG)提供的接口进行二次开发。周立功公司是一家知名的嵌入式系统解决方案供应商,其产品和服务广泛应用于物联网、自动化、汽车电子等领域。这里的"二次开发...
使用此方法时不考虑词语之间的联系,词语的情感值不会随着应用领域和上下文的变化而变化,因此需要针对特定领域建立相关的情感词典提高分类的准确率。情感词典是情感分析系统的基础知识库,是数字、文本与符号集合。...
Python在金融大数据领域的应用是一个广泛的领域,涉及到许多关键知识点。首先,Python因其开源、解释性、多框架和多目的特性,成为了金融数据分析的首选语言。它的语法简洁易懂,降低了程序维护的成本,同时支持模块...
Python 是一种广泛应用于水文领域的编程语言。水文领域中,Python 的应用包括数据分析、模拟、可视化和自动化等方面。 Python 基础知识 Python 是一种高级的、解释性的编程语言,具有简单、易学、灵活等特点。...
《Python应用编程内幕第3版》是一本深入探讨Python编程技术的专业书籍,旨在帮助读者全面理解和掌握Python在实际应用中的各种技巧和最佳实践。这本书详细介绍了Python的核心概念、语法特性和高级特性,对于想要深入...
Python 应用领域 Python 作为一种通用语言,其应用领域几乎是无限的。下面是 Python 的一些常见应用领域: 1. 系统编程:Python 可以用来编写可移植的维护操作系统的管理工具和部件,例如搜索文件和目录树、运行...
【Python应用讲座】是针对Python编程语言的一系列学习资源,主要涵盖了Python的胶片(可能是指教学视频或幻灯片)和脚本。这个讲座旨在帮助初学者和有一定基础的学员深入理解Python语言,掌握其核心概念和实际应用。...