其实我们前边已经使用了很多模块,如第一节的urllib,那本节将为你介绍import urllib背后的秘密。
对于异常处理,我们已经在其它语言如C++、java中有所体会,那python中又是如何进行异常处理的呢?
稍后,你就会知道答案。本节共分为以下几个部分。
1. 认识模块
2. 模块的引入
3. 定义模块
4. 常用模块介绍
5. 异常处理
6. 写在最后
7. 参考文献
下面我们先来了解下模块。
1. 认识模块
模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中,我们就可以使用了。这类似于C语言中的include头文件。在 Python中的模块是一个以.py结尾的 Python代码文件。
2. 模块的引入
在C语言或C++语言中,我们使用include来引入相应的库,那python如何引入模块呢?
Python引入模块与java中引入库有些类似,都使用import。
import 会完成以下三个操作:
l 创建新的名称空间(namespace),该名称空间中拥有输入模块中定义的所有对象;
l 执行模块中的代码;
l 创建该名称空间的变量名
import 语句可同时输入多个模块,如:
importos,sys,system
也可以写成:
import os
import sys
import system
有些模块的名称很长,我们可在输入时给它起个简单的别名,这样在使用模块中
的对象就方便很多,如
import ftplib asftp
有时我们可能只想使用模块中某个对象,又不想把整个模块输入,则可以用
from…import 语句输入特定对象。如:
from ftplibimport FTP
这样,我们就可直接使用 FTP(),而不用带前缀。
3. 定义模块
Python 脚本和模块都是一个以.py 结束的文件,那程序是如何判断一个.py 文件是作为脚本还是模块呢?关键是一个名为__name__的变量,如果它的值是__main__,则不能作为模块,只能作为脚本直接运行。所以在很多脚本的最后都有一段类似下面的语句,限制只能以脚本方式运行,不作为模块:
if __name__ ==‘__main__’:
main()
几个功能相近的模块我们可组成一个 Python 包,存放到一个目录结构中,通过输入包的路径来调用对象。要定义包,就要建一个与包名同名的目录,接着在该目录下创建__init__.py 文件。该文件是包的初始化文件,可以为空,也可定义一个代码。例如一个 WebDesign 包的目录如下:
/WebDesign
__init_.py
design.py
draw.py
…
我们可通过以下语句输入 design 模块:
importWebDesign.design
4. 常用模块介绍
l import string
字符操作相关函数库
l import time
时间操作相关函数库
l import json
处理json数据的函数库
l import os
与操作系统有关的函数库。
os.system(‘ls’) #用 os.system()可执行系统命令
l import sys
非常强大的一个模块,包括sys.argv、sys.platform等
l import re
与正则有关的模块
l import urllib
与网页操作有关的模块
l import copy
与复制有关的模块
具体每个模块的函数库是非常多而且复杂的,这里只是简单的介绍一下,不作更多的深入探索,有兴趣的可以自己找资料研究一下。
5. 异常处理
与C++、java语言的异常处理机制类似,python也是使用try和catch来进行异常处理。
Try有两种用法,一种是:
try:
block
except [exception,[data…]]:
block
else:
block
该种异常处理语法的规则是:
a) 执行 try 下的语句,如果引发异常,则执行过程会跳到第一个 except 语句。
b) 如果第一个 except 中定义的异常与引发的异常匹配,则执行该 except中的语句。
c) 如果引发的异常不匹配第一个 except,则会搜索第二个 except,允许编写的 except 数量没有限制。
d) 如果所有的 except 都不匹配,则异常会传递到下一个调用本代码的最高层 try 代码中。
e) 如果没有发生异常,则执行 else 块代码。
另一种用法是:
try:
block
finally:
block
该种异常处理语法的规则是:
a) 执行 try 下的代码
b) 如果发生异常,在该异常传递到下一级 try 时,执行 finally 中的代码
c) 如果没有发生异常,则执行 finally 中的代码
除了系统引发的异常外,我们还可用 raise 语句手工引发一个异常:
raise [exception[,data]]
6. 写在最后
Python中模块的概念有关类似C或C++中库的概念。在python编程中,我们已经熟悉了几个比较常用的模块,对于这些模块,我们可以根据需要去进行研究,以便在使用时能够得心应手。
对于异常处理,大家在其它语言也应该有所接触,而异常处理机制也是非常好理解的。多练习,就可以掌握。
7. 参考文献
Python之import机制:http://blog.sina.com.cn/s/blog_90bc5fc6010159e0.html
Python手记,下载地址:http://pan.baidu.com/s/1pJCxxWZ