序列化模块-pickle
#dumps 把任意对象序列化成一个bytes
序列化:把不能够存储的数据变得可存储(例如列表,元祖,字典等)
pickle.dumps(数据)
#loads 把任意bytes反序列化成原来数据
反序列化:把存储的内容拿出来,转换成原来的数据类型。
#dump 把对象序列化后写入到file-like Object(即文件对象)
with open(文件名,"wb") as 变量1:
pickle.dump(内容,变量1)
#load 把file-like Object(即文件对象)中的内容拿出来,反序列化成原来数据
with open(文件名,"wb") as 变量:
pickle.load(变量)
数学模块-math
ceil() 向上取整操作 (对比内置round)
格式: math.ceil(数值)
返回值:整型
floor() 向下取整操作 (对比内置round)
格式: math.floor(数值)
返回值:整型
pow() 计算一个数值的N次方(结果为浮点数)
格式:math.pow(底数,指数)
返回值:浮点型
sqrt() 开平方运算(结果浮点数)
格式:math.sqrt(数值)
返回值:数值
fabs() 计算一个数值的绝对值 (结果浮点数) (对比内置abs)
格式: math.fabs(数值)
返回值:一定是非负浮点数
注意:在操作时如果操作的数值本身是整数,返回的数值依旧是绝对值计算之后的浮点数
modf() 将一个数值拆分为整数和小数两部分组成元组
格式:math.modf(数值)
返回值:(小数部分,整数部分)
copysign() 将参数第二个数值的正负号拷贝给第一个
格式:math.copysign(数值1,数值2)
返回值:新的数值
fsum() 将一个容器数据中的数据进行求和运算 (结果浮点数)(sum)
格式: math.fsum(容器)
返回值:求和后的结果
#圆周率常数 pi 注意:不是函数。 math.pi
随机模块-random
random() 获取随机0-1之间的小数(左闭右开)
格式:random.random()
返回值:随机0-1之间的小数
randrange() 随机获取指定范围内的整数(包含开始值,不包含结束值,间隔值)
格式:random.randrange([开始值,]结束值[,间隔值])
返回值: 随机返回指定范围内的指定间隔的数值
注意:默认开始值为0,默认间隔值为1
randint() 随机产生指定范围内的随机整数(闭区间)
格式:randint(low,high)
#在numpy里面的randint:
格式:randint(low[, high, size])
参数:low为最小值,high为最大值,size为数组维度大小
high没有填写时,默认生成随机数的范围是[0,low)
返回值:返回指定范围内的随机整数
uniform() 获取指定范围内的随机小数(左闭右开)
格式:random.uniform(开始值,结束值)
返回值:随机返回开始和结束之间的小数。
choice() 随机获取序列中的值(字符串,列表,元组)
格式:random.choice(序列)
返回值:序列中的某个值
shuffle() 随机打乱列表中的值(直接打乱原序列)
格式:random.shuffle(列表)
返回值:None
os模块-对系统进行操作
getcwd() 获取当前的工作目录 get current work directory
格式:os.getcwd()
返回值:当前工作目录的地址字符串
注意:当前工作目录:操作文件或者文件夹等信息的默认查找使用的文件夹
chdir() 修改当前的工作目录
格式:os.chdir(要设置的工作目录)
返回值:无
listdir() 获取指定文件夹中的所有内容的信息组成的列表
格式:os.listdir(路径)
返回值:存放所有内容名称的列表
mkdir() 创建文件夹
格式:os.mkdir(文件夹路径,权限设置)
返回值:无
以下内容对linux有效,window无所谓
0o 7 7 7
八进制 所有者 所属组 其他人
所有者:文件夹或者文件归谁所有 admin 用户
所属组:所有者所在的组别 group用户
其他人: 不是所有者或者所属组的其他用户 other用户
权限划分:
可读,可写,可执行
4 2 1
makedirs() 递归创建文件夹
格式:os.makedirs(路径,权限)
返回值:无
rmdir() 删除空文件夹
格式:os.rmdir(路径)
返回值:无
removedirs() 递归删除空文件夹
格式:os.removedirs(路径)
返回值:无
rename() 修改文件或者文件夹的名称
格式:os.rename('来源路径','目标路径')
返回值:无
stat() 获取文件或者文件夹的状态信息(很少用)
格式:os.stat(路径)
返回值:容器数据 保存着很多的文件夹和文件的信息
system() 执行操作系统的命令(少用)
格式:os.system('系统命令')
返回值:无
注意:linux,和window,unix的命令是不同的
os路径模块 -os.path
abspath() 将相对路径转化为绝对路径 *
格式:os.path.abspath(路径)
返回值:绝对路径
basename() 获取路径的主体部分
格式:os.path.basename(路径)
返回值:主体部分
dirname() 获取路径中路径部分
格式:os.path.dirname(路径)
返回值:路径部分
join() 将两个路径合并到一起
格式:os.path.join(路径1,路径2)
返回值:组合之后的路径信息
split() 直接将路径拆分成路径部分和主体部分组成的元组
格式:os.path.split(路径)
返回值:主体和路径组成的元组
splitext() 将路径拆分为文件后缀和其他部分
格式:os.path.splitext(路径)
返回值:后缀信息和其他信息组成的元组
getsize() 获取文件的大小 *
格式:os.path.getsize(文件路径)
isdir() 检测是否是一个文件夹 *
格式:os.path.isdir(路径)
返回值:布尔值
isfile() 检测是否是一个文件 *
格式:os.path.isfile(路径)
返回值:布尔值
islink() 检测是否是一个连接(linux)
Windows“链接”是一种特殊的Windows功能(快捷方式),
必须通过Win32 api 调用或搜索快捷方式的内容特征来检测。
getctime() 获取文件的创建时间 get create time
格式:os.path.getctime()
返回值:创建文件的时间戳
getmtime() 获取文件的修改时间 get modify time
格式:os.path.getmtime()
返回值:修改文件的时间戳
getatime() 获取文件的访问时间 get active time
格式:os.path.getatime()
返回值:最后一次访问文件的时间戳
exists() 检测指定路径是否真的存在
格式:os.path.exists(路径)
返回值:布尔值
isabs() 检测路径是否是一个绝对路径
格式:os.path.isabs(路径)
返回值:布尔值
samefile() 检测两个路径是否指向同一个文件或者文件夹 *
格式:os.path.samefile(路径1,路径2)
返回值:布尔值
shutil模块
# -- shutil模块 复制/移动/
copy() 复制文件 *
格式:copy(src, dst)
参数:src 文件来源路径
dst 文件目标路径
返回值:目标文件地址
copy2() 复制文件,保留原有文件的信息(操作时间和权限等) *
格式:copy2(src, dst)
参数:src 文件来源路径
dst 文件目标路径
返回值:目标文件地址
copyfile() 复制文件内容(打开文件之后读取内容 ,在新建文件复制进去) *
格式:copyfile(src,dst)
参数:src 文件来源路径
dst 文件目标路径
返回值:目标文件地址
copystat() 拷贝文件状态信息
格式:copystat(src,dst)
参数:src 文件来源路径
dst 文件目标路径
返回值:None
copymode() 拷贝文件权限(linux下操作)
格式:copymode(src,dst)
参数:src 文件来源路径
dst 文件目标路径
返回值:None
copytree() 拷贝整个文件夹 *
格式:copytree(src,dst)
参数:src 来源文件夹
dst 目标文件夹
返回值:目标地址路径
rmtree() 删除整个文件夹 *
格式:rmtree(path)
参数:path 要删除的文件夹路径
返回值:None
move() 移动文件或者文件夹/剪切操作(修改文件和文件夹名称也可以使用该函数!) *
格式:move(src,dst)
参数:src 来源路径
dst 目标路径
返回值:目标路径
disk_usage() 查看磁盘使用量
格式:disk_usage('盘符')
返回值:盘符使用情况
压缩模块-zipfile (后缀为zip)
#zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])
#ZipFile(路径包名,模式,压缩or打包,可选allowZip64)
#功能:创建一个ZipFile对象,表示一个zip文件.
#参数:
-参数file表示文件的路径或类文件对象(file-like object)
-参数mode指示打开zip文件的模式,默认值为r
r 表示读取已经存在的zip文件
w 表示新建一个zip文档或覆盖一个已经存在的zip文档
a 表示将数据追加到一个现存的zip文档中。
-参数compression表示在写zip文档时使用的压缩方法
zipfile.ZIP_STORED 只是存储模式,不会对文件进行压缩,这个是默认值
zipfile.ZIP_DEFLATED 对文件进行压缩
-如果要操作的zip文件大小超过2G,应该将allowZip64设置为True。
#压缩文件
#1.ZipFile() 写模式w打开或者新建压缩文件
#2.write(路径,别名) 向压缩文件中添加文件内容
#3.close() 关闭压缩文件
#解压文件
#1.ZipFile() 读模式r打开压缩文件
#2.extractall(路径) 解压所有文件到某个路径下
# extract(文件,路径) 解压指定的某个文件到某个路径下
#3.close() 关闭压缩文件
压缩模块-tarfile(后缀为.tar | .tar.gz | .tar.bz2)
#bz2模式的压缩文件较小 gz相对bz2大
w 单纯的套一个后缀 打包
w:bz2 采用bz2算法 压缩
w:gz 采用gz算法 压缩
with tarfile.open(路径,"w:bz2") as tf:
tf.add()
#压缩文件
#1.open('路径包名','模式','字符编码') 创建或者打开文件
#2.add(路径文件,arcname="别名") 向压缩文件中添加文件
#3,close() 关闭文件
#解压文件
#1.open('路径包名','模式','字符编码') 读模式打开文件
#2.extractall(路径) 解压所有文件到某个路径下
# extract(文件,路径) 解压指定的某个文件到某个路径下
#3.close() 关闭压缩文件
with tarfile.open(路径1,"r") as tf:
tf.extractall(路径2)
#追加文件
open() 追加模式 a: 打开压缩文件 正常添加即可
with tarfile.open(文件,"a") as tf:
tf.add("路径","别名")
#查看压缩包中的内容
getnames()
时间模块
time() 获取本地时间戳 *
格式:time.time()
参数:无
返回值:时间戳
ctime() 获取本地时间字符串(参数是时间戳,默认当前)
格式:time.ctime(时间戳)
参数:时间戳
返回值:字符串
localtime() 获取本地时间元组 (参数是时间戳,默认当前) *
格式:time.localtime(时间戳)
参数:时间戳
返回值:时间元组
mktime() 通过时间元组获取时间戳 (参数是时间元组)
格式:time.mktime(时间元组)
参数:时间元组
返回值:时间戳
asctime() 通过时间元组获取时间字符串(参数是时间元组)
格式:time.asctime(时间元组)
参数:时间元组
返回值:字符串
sleep() 程序睡眠等待 *
格式:time.sleep(秒数)
参数:数值
返回值:无
strftime() 格式化时间字符串(格式化字符串,时间元祖) *
格式:time.strftime(格式化字符串,时间元组)
参数:格式化字符串,时间元组(可选)
返回值:字符串
注意:第二个参数如果不选,则默认为当前时间
#参数1
ft = time.strftime('{today}%Y{y}%m{m}%d{d} %H{h}%M{f}%S{s}').format(today="今天 是:",y='年',m='月',d='日',h='时',f='分',s='秒')
#参数2
t = (2019,3,22,9,20,38,4,80,0)
ti = time.strftime("%b %d %Y %H:%M%S",t)
#strptime() 将时间字符串通过指定格式提取到时间元组中(时间字符串,格式化字符串) *
格式:time.strptime(时间字符串,格式化字符串)
参数:时间字符串,格式化字符串
返回值:时间元组
ntime = time.strptime("2018 2 5 23 56 26","%Y %m %d %H %M %S")
#perf_counter() 用于计算程序运行的时间 *
格式:time.perfcounter()
参数:无
返回值:计数器的值(以分秒为单位)
时间模块相关知识
#时间戳指从1970年1月1日0时0分0秒到指定时间之间的秒数,时间戳是秒,可以使用到2038年的某一天
#UTC时间: 世界约定的时间表示方式,世界统一时间格式,世界协调时间!,特指格林尼治天文台所在位置的时间也叫做格林尼治时间。中国的时区是东八区,和世界协调时间差了8个小时,多个八个小时
#夏令时: 在夏令时时间状态下,时间会调块1个小时
#时间元组是使用元祖格式表示时间的一种方式,他是time模块操作时间的主要方式。
格式1(自定义):
(年,月,日,时,分,秒,周几,一年中的第几天,是否是夏令时时间)
格式2(系统提供):
(tm_year = 年,tm_month = 月,tm_day = 日,tm _hour = 时, tm_min = 分, tm _sec = 秒, tm _wday = 周几, tm _yday = 一年中的第几天,tm_isdst = 是否是夏令时时间)
0 年 4位数完整年份 四位数1997
1 月 1-12月 1 - 12
2 日 1-31天 1 - 31
3 时 0-23时 0 - 23
4 分 0-59分 0 - 59
5 秒 0-61秒 0 - 61 #闰秒
6 周几 周一-周天 0 - 6
7 年中第几天 共366天 1 - 366
8 夏令时 两种 0,1 0是 其他都不是
#strftime()格式化时间字符串:
格式 含义
%a 本地(locale)简化星期名称
%A 本地完整星期名称
%b 本地简化月份名称
%B 本地完整月份名称
%c 本地相应的日期和时间表示
%d 一个月中的第几天(01 - 31)
%H 一天中的第几个小时(24 小时制,00 - 23)
%I 一天中的第几个小时(12 小时制,01 - 12)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12)
%M 分钟数(00 - 59)
%p 本地 am 或者 pm 的相应符
%S 秒(01 - 61)
%U 一年中的星期数(00 - 53 星期天是一个星期的开始)第一个星期天之前的所有天数都放在第 0 周
%w 一个星期中的第几天(0 - 6,0 是星期天)
%W 和 %U 基本相同,不同的是 %W 以星期一为一个星期的开始
%X 本地相应时间
%y 去掉世纪的年份(00 - 99)
%Y 完整的年份
%z 用 +HHMM 或 -HHMM 表示距离格林威治的时区偏移(H 代表十进制的小时数,M 代表十进制的分钟数)
例:
日历模块-calendar(了解内容)
#--calendar 日历模块 import calendar
#calendar() 获取指定年份的日历字符串 (年份,w日期间的宽度,l日期间的高度,c月份间的间距,m一行显示几个月)
calendar.calendar(2018,w=2,l=2,c=20,m=1)
#month() 获取指定年月的日历字符串 (年份,月份,w日期之间的宽度,l日期之间的高度)
calendar.month(2018,9,w = 2,l = 2)
#monthcalendar() 获取指定年月的信息列表 (年份,月份) 0从周一开始排
calendar.monthcalendar(2018,9)
#isleap() 检测是否是润年(能被4整除不能被100整除或能被400整除)
calendar.isleap(2004)
#leapdays() 指定从某年到某年范围内的润年个数
calendar.leapdays(1970,2038)
#monthrange() 获取某年某月的信息 周一是0
calendar.monthrange(2018,8)
#weekday() 指定某年某月某日是星期几
calendar.weekday(2018,8,18)
#timegm() 将时间元组转化为时间戳
ttp = (2018,10,1,13,23,34,0,0,0)
calendar.timegm(ttp)