07 模塊

2019-04-13 14:22发布


模塊和包的概念

等同於java中的Package 模塊名=文件名(無後綴) 在文件系統中,包就是文件夾,模塊就是xxx.py文件 每層包下面都有__init__.py文件

導入模塊

>>> import math >>> math.pow(2, 0.5) >>> math.pi

精確導入函數、變量

>>>form math import pow, sin, log >>> pow(2, 10) >>> sin(3.14)

起別名

form logging import log as logger

判斷是否爲文件或目錄

import os
print os.path.isdir(r'/data/input') print os.path.isfile(r'/data/input/file1')

動態導入模塊

如果導入的模塊不存在,Python解釋器會報ImportError錯誤。 有的時候,兩個不同的模塊提供了相同的功能,比容StringIO和cStringIO都提供了StringIO這個功能。這是因爲Python是動態語言,解釋執行,因此Python代碼運行速度慢。如果要提高Python代碼的運行速度,最簡單的方法是把某些關鍵函數有C語言重寫,這樣就能大大提高執行速度。 同樣的功能,StringIO是純Python代碼編寫的,而cStringIO部分函數是C編寫的,因此cStringIO運行速度更快。 利用ImportError錯誤,可以動態導入模塊: try:     from cStringIO import StringIO expect ImportError     from StringIO import StringIO
上述代碼先嘗試從cStringIO導入,如果失敗了,再嘗試從StringIO導入。 try的作用是捕獲錯誤,並再捕獲到指定錯誤時執行except語句。

使用__future__

Python的新版本會引入新的功能,但是,實際上這些功能在一個老版本中就已經存在了。要“試用”某一新的特性,就可以通過導入__future__模塊的某些功能來實現。 例如: Python 2.7中 >>> 10 / 3    #3 Python 3.x中 >>> 10 / 3    #3.33333333 >>> 10 // 3    #3
在2.7中引入3.x的除法規則:
>>> from __future__ import division >>> 10 / 3    #3.33333333
當新版本的一個特性與舊版本不兼容時,該特性就會再舊版本中添加到__future__中,以便在舊版本中測試新的特性。

安裝第三方模塊

Python的模塊:內置的  第三方的
模塊管理工具:-pip (推薦,已內置到Python2.7.9) pip install 模塊名 (pypi.python.org查找模塊名) 例子:pip install web.py