python中的模块与包

一. 模块

在 Python 中,一个.py文件就称之为一个模块(Module)

分类:

内置模块:
第三方模块(非官方的比较好的开源模块,网址:pypi.python.org,安装时为pip install 模块名)
自定义模块

1. 创建模块

编写python脚本

2. 导入模块

1>import 脚本名称

python中的模块与包

模块命名尽量短小,采用全部小写的方式,可以使用下划线

2>import as

3>from import

python中的模块与包

优点:

1>提高了代码的可维护性

2>编写代码不必从零开始,当一个模块编写完毕,就可以被其他地方引用

注:__future__模块的作用:在就版本中体验新版本的特性

3. 模块的作用域

模块中正常的函数和变量名是功用的,在python中,当有些函数和变量不希望被别人使用时,通过 _ 前缀来实现,比如__author__ , __name__就是特殊变量的,__func__,__fun为私有函数,不能直接引用

二. 常用模块

1. os模块

os.name               #当前所在平台,“linux-posix”  “windows-nt”

os.getcwd()          #获取当前所在绝对路径

os.listdir()             #列出给定目录的内容

os.mkdir()             #创建指定目录

os.rmdir()             #删除指定目录

python中的模块与包

os.environ          #对环境变量的操作

os.access(path,mode)        #判断对一个文件或者目录是否具有指定的权限,mode 参数的可选值: R_OK, W_OK, 和 X_OK

os.stat()             #相当于 Linux 下 stat 命令

python中的模块与包

eg:

python中的模块与包

使用 Python 执行 Linux 命令

os.system , 并没有返回值,是靠副作用产生输出的

os.popen 返回一个文件对象

python中的模块与包

os.popen2 返回两个文件对象,一个是 stdin, 一个是 stdout

os.popen3 返回三个文件对象 :stdin,stdout,stderr

附:os.path模块

os.path 是os 的一个子模块 , 主要是对路径进行解析、创建、测试和其他的一些操作,封装了不同平台的路径操作

路径解析:

os.path.split()

os.path.basename()

os.path.dirname()

python中的模块与包

os.path.isabs()           

os.path.isdir()              #判断是否是目录

os.path.isfile()             #判断是否是文件

os.path.islink()            #判断是否是链接

python中的模块与包

2. sys模块

sys 模块主要提供了系统相关的配置和操作,封装了探测、改变解释器runtime 以及资源的交互

sys.version           #得到解释器的版本信息

sys.platform         #得到当前运行平台

sys.argv               #获取传递给脚本的参数,参数解析类似于 bash 的方式,第一个参数代表脚本本身

python中的模块与包

sys.path                      #Python在指定的路径下搜索模块与包对应的路径
sys.path.append()     #添加搜索模块与包的路径

python中的模块与包

sys.path.remove()    #指定删除搜索模块与包的路径

sys.path.insert()       #指定位置添加索模块与包的路径

python中的模块与包

eg1:

要求1:用户输入参数大于2,在当前目录创建目录hello1和hello2

要求2:用户输入参数等于1,显示当前目录下的所有文件

要求3:无参数输入,显示当前目录下的所有目录信息(同linux的stat)

python中的模块与包

测试:

python中的模块与包

3. random模块

random.randint()            #随机产生指定范围的字符

random.random()           #随机产生0到1之间的小数

random.uniform()           #随机产生指定范围的小数

random.randrange()      #随机产生指定范围字符

python中的模块与包

random.choice()        #随机在给定范围产生一个

random.sample()       #随机在给定范围产生多个

random.shuffle()         #随机打乱

python中的模块与包

eg1:生成一个包含4个字符的随机验证码,(由数字和字母组成)

python中的模块与包

eg2:编写一个makepass模块,实现功能为为系统管理员创建的新用户帐号分配一个不同的完全随机的密码

python中的模块与包

4. time模块

time.time()                 #时间戳

time.localtime()         #将时间戳转化为元组格式时间

time.ctime()               #时间戳转化为字符串格式显示

python中的模块与包

time.strftime()        #将元组格式时间转化为字符串显示

time.strptime()       #将字符串显示转化为元组格式时间

python中的模块与包

time.mktime(t)      #将元组格式时间转化为时间戳,但元组长度必须为9

time.sleep()           #等待时长

time.strftime("%Y-%m-%d %X", time.localtime())

模块编写注意事项:

当模块直接运行时,__name__值为__main__,当是import导入时,其值为模块名称,通常利用if __name__ == "__main__":判断

二. 包

1. 创建包

1>创建一目录为包名

2>在该目录下创建__init__.py文件存放包的信息,该文件可以为空

python中的模块与包

注:包命名时尽量短小,使用全部小写的方式,不可以使用下划线

2. 调用包

python中的模块与包