模块概念
创建的每一个python文件,都是模块
python的包和模块都要注意规范
python项目
-包1
.py文件1
.py文件2
-包2
....
-包3
模块分类
内置模块 --自带的模块,需要使用Import导入 如:import functools
自定义模块 --自己写的python文件,可以导入
第三方模块 --需要使用pip自行下载
-人工智能 scikit-learn
-数据分析 pandas
-机器学习
-深度学习
-计算机视觉 opencv
模块的导入方式
方式一:直接导入 import
-内置模块
-同文件夹下自定义模块
方式二:通过包导入 from 包名[.子包名] import 模块名
什么是python包?
具备一个非常重要的标识文件 init.py
init.py
一般用于标识这是一个python包
初始化高频的变量和函数
导入多个模块的问题
import 模块1, 模块2...
模块导入后实例问题
1.自定义模块的使用问题
import my_module
# 1.测试自定义模块的基础信息
print(type(my_module))
print(help(my_module))
# 2.测试自定义模块内置函数
print(my_module.__name__) # 文件名
print(my_module.__doc__) # 写在开头的注释
# 3.测试模块中的自定义变量和函数
print(my_module.username)
print(my_module.password)
print(my_module.prinr_info("wangwu","111"))
2.动态导入问题
# 4.测试动态导入
# 4.1使用内置函数 __import__ 不推荐使用,兼容性问题
m1 = __import__("math")
print(m1.pi)
# 4.2 外部库导入 --推荐
import importlib
m2 = importlib.import_module("math")
print(m2.pi)
print(m1 is m2)
常用内置模块
1.math模块
import math,random
# 1.测试math
print(math.pi)
print(math.e)
# 取绝对值
print(math.fabs(-10)) # 10
# 向上取整
print(math.ceil(10.1)) # 11
print(math.floor(10.9)) # 10
# 求幂
print(math.pow(2,3)) # 8
# 开根号
print(math.sqrt(36)) # +6 因为计算机没有正负号
2.random模块
# 2.测试random
# 取区间内的随机整数
print(random.randint(0,100))
# 取[0,1)之间的数字
print(random.random())
print(int(random.random()*100))
# 取指定范围及步长的随机数
print(random.randrange(30,100,2))
# 取容器中的随机元素
list_award = ["1QB","飞机","坦克","坦克"]
print(random.choice(list_award))
3.os模块
使用.表示当前目录
使用..表示父级目录
import os
# 1.获取当前目录标识
print(os.curdir) # 这是一个变量
# 2.获取当前的cpu的线程数
print(os.cpu_count())
# 3.获取当前路径
print(os.getcwd())
# 4.获取当前的进程号
print(os.getpid())
print(os.getppid())
# 5.kill()
# print(os.kill()) #Windows中不要随便杀死进程
# 6.windows操作系统下的默认符号
# 路径分隔符
print(os.sep) # windows \ linux /
# 环境变量分隔符
print(os.pathsep) # ;
# 换行符
print(os.linesep)
# *7.返回所有的文件目录
print(os.listdir())
print(os.listdir(".."))
# 8.创建单个目录
os.mkdir("./test1") # 只能运行一次,第二次产生文件夹会报错
# 9.创建多个文件目录
os.makedirs("./testa/testb")
# 10.删除文件或目录
os.remove("./test1")
os.removedirs("./testa/testb")
# 11.执行windows命令
# 清屏
os.system("cls")
4.os.path
相对路径
相对于python当前路径的为参照物
绝对路径
从盘符开始的路径
当前路径
.
父级路径
. .
路径分隔符问题
/ linux默认路径分隔符
建议使用,兼容性考虑
\\ windows转义
\ windows默认路径分隔符
import os.path as p
# 1.返回绝对路径
print(p.abspath("."))
# 2.查看cpython下默认的路径分隔符
print(p.altsep) # /
# 3.获取目录的名称
print(p.basename("./04python_module./4.5python_os_path.py")) # 4.5python_os_path.py
# 4.获取文件所在的目录
print(p.dirname("./04python_module./4.5python_os_path.py")) # ./04python_module.
# 5.判断目录或文件是否存在
print(p.exists("./04python_module"))
# 6.判断文件的大小
## 可以省略./
print(p.getsize("./code/04python_module/test.txt"))
# 7.判断问题
## 判断是否为目录
print(p.isdir("./code/04python_module")) # T
# 8.分割路径 将当前文件和文件所在目录拆分,并返回一个元组
print(p.isfile("D:/云计算3/code/04python_module/4.5python_os_path.py"))
# 9.**拼接路径
## python提供的路径分隔符
print(p.sep) # \
## 定义父子路径
p_path = "D:/云计算3/code/04python_module/"
c_path = "4.5python_os_path.py"
## 路径拼接的问题
new_path = p.join(p_path,c_path)
# new_path = p_path + "/" + c_path
# new_path = p_path + "\\" + c_path
# new_path = p_path + p.sep + c_path
print(p.isfile(new_path)) # True
5.sys
了解即可
import sys
# 1.获取python版本的内部号
print(sys.api_version)
# 2.cpython版权信息
print(sys.copyright)
# 3.获取默认的编码
print(sys.getdefaultencoding()) # utf-8
# 4.获取文件系统的默认编码
print(sys.getfilesystemencoding()) # utf-8
# 5.递归的最大深度
print(sys.getrecursionlimit())
# 6.获取窗口的版本信息
print(sys.getwindowsversion())
# 7.获取版本信息
print(sys.version)
6.uuid
了解即可
# uuid,产生一个随机的且唯一的序列 不算完全唯一
import uuid
res = uuid.uuid4()
print(res)
# 转为整数形式
print(res.hex)