# Python中的模块(Module)就是一个Python文件,以.py结尾,,包含了 Python 对象定义和Python语句
# 模块能够让我们有逻辑的组织Python代码块,把相关代码分配到一个模块中,能让你的代码更清晰,更易懂
# 模块能定义函数,变量,类等
# 包是一个和模块从来不分家的存在,当一个模块内容过多的时候,我们会考虑将模块的内容转换到包中
# 包和文件的区别,在于 __init__.py文件
# 包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境
# 简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__init__.py 用于标识当前文件夹是一个包
# PyCharm中可以直接将我们的.py文件转换为一个包
# .py文件写python代码,一个模块
def sum(a, a1):
return a + a1
print(sum(3,5))
# 模块主要分为3大类
# 内置模块
# 第三方模块
# 自定义模块
#模块的引入
# import mmm
# from mmm import www
# from mmm import www,eee
# from mmm import www as d
# 切记不能循环导入
# 如果我们要引用一个模块,需要将导入模块放到顶端,当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。
# 搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 HelloModule.py,需要把命令放在脚本的顶端:
# import语句
# 导入一个random模块
# import random
# 引用模块:模块名.函数名
# random.choice
# 一个模块只会被导入一次,不管执行了多少次import。这样可以防止导入模块被一遍又一遍地执行
# from…import 语句
# Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下:
# from modname import name1[, name2[, ... nameN]]
# 导入random模块的属性,属性可以直接使用,as可以给导入的属性起别名
from random import choice
a = [1,2,3,4,5,6,7]
print(choice(a))
# 第三方模块主要通过安装来获得
# pip install模块名
# 自定义模块即我们自己编写的模块
常见模块
OS 模块:提供了多数操作系统的功能接口函数
sys模块:与python解释器交互的一个接口,提供对解释器使用或维护的一些变量的访问,即与解释器强烈交互的函数
time模块:时间操作
datetime模块:时间操作
hashlib(加密)模块:提供了常见的摘要算法,如MD5, SHA1等等
logging模块:主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等
subprocess模块:主要用于创建子进程,并连接它们的输入、输出和错误管道,获取它们的返回状态
randmon(获取随机数)模块:用于生成随机数
shutil模块:提供了大量的文件的高级操作,特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作
paramiko模块:遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接
requests模块:是python中原生的一款基于网络请求的模块,用来模拟浏览器发请求
etree中xpath模块:数据解析,可用来在 XML 文档中对元素和属性进行遍历
beautifulsoup模块:主要的功能是从网页抓取数据,并对数据进行分析
pyquery模块:强大的 HTML 解析库