模块
python中的模块,类似于C语言中的头文件,特指某个x.py文件
模块的导入
import package #导入包
import package as A #使用别名方便代码书写
import package.module #导入包中的模块,该方法使用模块需要package.module使用
from package import module #导入包中的模块,该方法可以直接使用模块
常见的几种内置模块
random (计算机API实现的随机数都是伪随机数)
- random.random() 返回一个0-1的随机数
>>> random.random()
0.2388863907333234
>>> random.random()
0.6016820339244138
- random.randint(x,y) 返回一个[x,y]中的随机整数
>>> random.randint(1,20)
9
>>> random.randint(1,20)
17
-random.choice(sequence) 从序列中随机返回一个元素
>>> ls = [0,1,2,3,4,5,6]
>>> random.choice(ls)
0
>>> random.choice(ls)
3
- random.uniform(x,y) 返回[n,m]中的随机数
>>> random.uniform(10,20)
10.10720709034046
>>> random.uniform(10,20)
19.725267711404513
- random.randrange(start,stop,step) 随机产生一个[start,stop)中的整数,step默认为1
>>> random.randrange(20)
9
>>> random.randrange(20)
19
- random.shuffle(list) 随机列表中的元素顺序,若无参数,则返回一个[0,1)之间的随机数
>>> ls
[0, 1, 2, 3, 4, 5, 6]
>>> random.shuffle(ls)
>>> ls
[5, 3, 1, 6, 0, 2, 4]
math 数学计算的一种模块
- math.ceil() 向上取整
>>> math.ceil(2.0000001)
3
- math.floor() 向下取整
>>> math.floor(2.999999)
2
- math. fabs() 求绝对值
>>> math.fabs(-1)
1.0
>>> math.fabs(-2)
2.0
- math.fmod 求模(余数)
>>> math.fmod(8,3)
2.0
- math.modf 以元组形式返回整数部分和小数部分
>>> math.modf(8.3333)
(0.3332999999999995, 8.0)
- math.pow 求幂次方
>>> math.pow(2,3)
8.0
- math.sqrt 开平方根
>>> math.sqrt(4)
2.0
>>> math.sqrt(25)
5.0
- math.pi 圆周率
>>> math.pi
3.141592653589793
- math.radians(x) 将x从角度转换到弧度
>>> math.radians(180)
3.141592653589793
>>> math.radians(360)
6.283185307179586
os
用来操作操作系统中的文件系统的模块,很多方法和操作系统的命令很相似
- chdir 修改当前工作空间路径
>>> a = os.getcwd()
>>> print(a)
C:\Users\11140
>>> path = "logs"
>>> os.chdir(path)
>>> a =os.getcwd()
>>> print(a)
C:\Users\11140\logs
- chmod(path,mode) 修改权限
- makedirs(path,mode) 创建文件夹,可以级联创建多层
- mkdir(path,[mode]) 创建文件夹,只能创建一层
mode:
stat.S_IXOTH: 其他用户有执行权0o001
stat.S_IWOTH: 其他用户有写权限0o002
stat.S_IROTH: 其他用户有读权限0o004
stat.S_IRWXO: 其他用户有全部权限(权限掩码)0o007
stat.S_IXGRP: 组用户有执行权限0o010
stat.S_IWGRP: 组用户有写权限0o020
stat.S_IRGRP: 组用户有读权限0o040
stat.S_IRWXG: 组用户有全部权限(权限掩码)0o070
stat.S_IXUSR: 拥有者具有执行权限0o100
stat.S_IWUSR: 拥有者具有写权限0o200
stat.S_IRUSR: 拥有者具有读权限0o400
stat.S_IRWXU: 拥有者有全部权限(权限掩码)0o700
stat.S_ISVTX: 目录里文件目录只有拥有者才可删除更改0o1000
stat.S_ISGID: 执行此文件其进程有效组为文件所在组0o2000
stat.S_ISUID: 执行此文件其进程有效用户为文件所有者0o4000
stat.S_IREAD: windows下设为只读
stat.S_IWRITE: windows下取消只读
- listdir 遍历得到当前工作空间下的所有文件及文件夹,返回一个列表
- scandir 遍历得到当前工作空间下的所有文件及文件夹,返回一个迭代器对象
>>> a = os.listdir()
>>> print(a)
>>> type(a)
<class 'list'>
>>> b=os.scandir()
>>> type(b)
<class 'nt.ScandirIterator'>
- curdir 表示当前路径(相对路径)
- getcwd 表示当前路径(绝对路径)
>>> a = os.getcwd()
>>> print(a)
C:\Users\11140
>>> print(os.curdir)
.
- remove 删除文件
- removedirs 删除文件,可多级删除
- rmdir 删除文件夹,可多级删除
os.path
用来操作文件的,判断文件是否存在、判断是文件还是文件夹等等
- abspath 显示相对路径
>>> print(os.path.abspath)
<function abspath at 0x03517CD8>
>>> print(os.path.abspath(os.curdir))
C:\Users\11140
- dirname 获取目录
>>> print( os.path.dirname('/haha/xixi/hehe') )
/haha/xixi
- basename 显示路径对应的文件名称
>>> print( os.path.basename('/haha/xixi/hehe.txt') )
hehe.txt
- getsize 获取文件大小(以字节为单位)
- getatime 获取最近访问时间
- getctime 获取文件创建时间
判断
- exists(path) 判断文件或者文件夹是否存在
- isdir(file) 判断是否是目录
- isfile(file) 判断是否是文件
- islink(file) 判断路径是否为链接
- ismount(file) 判断路径是不是一个挂载文件
- join(path1[,path2[,…]]) 拼接路径,系统自动生成分隔符
- split(path) 分割文件路径
time
- asctime 获取当前时间
- ctime 获取当前时间
- gtime 返回当前时间对象(伦敦时区)
- localtime 返回当前时间(当前时区)
>>> time.asctime()
'Fri Sep 11 11:11:08 2020'
>>> time.ctime()
'Fri Sep 11 11:14:11 2020'
>>> time.gmtime()
time.struct_time(tm_year=2020, tm_mon=9, tm_mday=11, tm_hour=3, tm_min=14, tm_sec=24, tm_wday=4, tm_yday=255, tm_isdst=0)
>>> time.localtime()
time.struct_time(tm_year=2020, tm_mon=9, tm_mday=11, tm_hour=11, tm_min=16, tm_sec=15, tm_wday=4, tm_yday=255, tm_isdst=0)
- sleep 当前线程停止运行(单位:秒)
>>> time.sleep(2)
- strftime 将时间对象转化为字符串
- strptime 将字符串转化为时间对象
>>> time.strftime("%Y-%m-%d")
'2020-09-11'
>>> time.strftime("%Y-%m-%d-%H-%M-%S",time.localtime())
'2020-09-11-11-26-22'
>>> time.strftime("%Y-%m-%d-%H-%M-%S")
'2020-09-11-11-26-30'
>>> my_time="2020-9-11 12:10:20"
>>> time.strptime(my_time,"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2020, tm_mon=9, tm_mday=11, tm_hour=12, tm_min=10, tm_sec=20, tm_wday=4, tm_yday=255, tm_isdst=-1)
- struct_time(元组) 构造一个对应的时间对象
- time 获取当前时间戳(距离1970年1月1日0分0秒到现在的时间,单位:秒)
>>> time.time()
1599794292.420146