模块
模块是一个包含了你所定义的所有变量及函数的文件,相当于封装的一个过程,可供其他脚本或者程序引用。和函数a little相似。创建自己的模块其实就和写一个脚本差不多,不过区别是,模块不像平时写的脚本那样有那么多输出。
下面举一个Python中标准库使用的例子:
#!/user/bin/env python
# -*- coding:utf-8 -*-
# author: zhuzhuzhu time:2018/3/19
import sys
print('命令行参数如下:')
for i in sys.argv:
print(i)
print('\n\npython 路径为:', sys.path, '\n')
在以上代码中,我们导入了Python标准库中一个名为sys.py的模块
sys.argv 是一个包含命令行参数的列表
sys.path 包含了一个 Python 解释器自动查找所需模块的路径的列表。
import语句
想使用 Python 源文件,只需在另一个源文件里执行 import 语句:import module(模块名)
这里需要注意的是,一定要将想要导入的模块放在程序顶端
下面是在test.py这个文件中导入自创建模块support.py的例子:
support.py
def print_func( par ):
print ("Hello : ", par)
return
test.py
import support
support.print_func("zhuzhuzhu")
#导入之后即可调用support中的函数
OUTPUT:
Hello:zhuzhuzhu
接下来,我们创建一个裴波那契数列的模块:fibo.py,使得调用该模块之后,以列表形式输出某数之前的所有裴波那契数列
fibo.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author: zhuzhuzhu time:2018/3/19
def fib(n):
a, b = 0, 1
while b < n:
print(b, end=' ')
a, b = b, a+b
print()
def fib2(n):
result = []
a, b = 0, 1
while b < n:
result.append(b)
a, b = b, a + b
return res
fun(fib).py
import fibo
fibo.fib(5)
#可以用一个模块的名称来访问函数
OUTPUT:
1 1 2 3
如果某一个模块对你来说比较常用,你可以把它赋给一个本地变量
例如:
f = fibo.fib
f(5)
如果想要从模块中导入一个指定的部分到当前命名空间中,则可使用from (模块名称)import (函数名称)语句
具体如下:
from fibo import fib, fib2
fib(5)
这个声明不会把整个fibo模块导入到当前的命名空间中,它只会将fibo里的fib函数引入进来。
_ name _ 属性
每个模块都有一个name属性,当其值是’main‘时,表明该模块自身在运行,否则是被引入。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author: zhuzhuzhu time:2018/3/19
if __name__ == "__main__":
print("我在自身运行")
else:
print("我来自别的模块")
标准模块
在文章开始,我们就介绍了一个标准模块sys的使用,sys这个模块非常特殊,它内置在每一个Python解释器中。而标准模块,说白了其实就是Python自带的模块,能高效的使用,甚至是系统级的调用也没有问题。
练习题
备份脚本:
实现常规备份(全备份)功能
备份时可指定排除目录
备份:
常规备份
增量备份
差异备份
关于三种备份方式的区别和差异,参照http://blog.csdn.net/u012316120/article/details/52507446,很清楚了~
啊…..关于这个备份…..我不会啊哈哈哈哈哈太惨了。表示没看懂。
…..md5