Python运维基础(5)模块的创建

模块

模块是一个包含了你所定义的所有变量及函数的文件,相当于封装的一个过程,可供其他脚本或者程序引用。和函数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

猜你喜欢

转载自blog.csdn.net/in_nocence/article/details/79614849
今日推荐