模块,模块就是封装了特殊功能的代码。
模块分为三种:
- 自定义模块
- 第三方模块
- 内置模块
1.自定义模块
2.模块的导入
python有大量的模块可以使用,再使用之前我们只需要导入模块就可以了。
导入模块其实就是告诉python解释器去解释那个py文件
import 语句
import module1[, module2[,... moduleN]
当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入
搜索路径是一个解释器会先进行搜索的所有目录的列表。如果需要导入模块support,需要把命令放在程序的顶端
- 一个模块只会被导入一次
- python解释器依次从目录中一级级的去寻找所引入的模块
- 寻找模块的过程有点像环境变量,事实上也可以通过定义环境变量的方式来确定搜索的路径
- 搜索路径是python编译或者安装的时候确定的,安装新的库应该也会修改,搜索路径被存储在sys模块中的path变量,
>>> import sys >>> sys.path ['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages'] >>>
from...import语句
from modname import name1[, name2[, ... nameN]]
例如:导入模块fibo的fib函数
from fibo import fib
这个声明不会把整个fib模块导入到当前的命名空间中,它只会将fib里的fibonacci单个引入到执行这个声明的模块的全局符号表。
二、内置函数
1.sys
sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 sys.stdin 输入相关 sys.stdout 输出相关 sys.stderror 错误相关
import sys import time def view_bar(num, total): rate = float(num) / float(total) rate_num = int(rate * 100) r = '\r%d%%' % (rate_num, ) sys.stdout.write(r) sys.stdout.flush() if __name__ == '__main__': for i in range(0, 100): time.sleep(0.1) view_bar(i, 100)