Day 17 常用模块part1
常用模块part1
time 模块
import time
时间戳(timestamp)
表示从1970年1月1日0点开始计时的秒数,类型是浮点型
time_stamp=time.time()
格式化时间(format string)
格式化时间表示的是普通的字符串格式的时间
format_time = time.strftime("%Y-%m-%d %X") #Y年 m月 d天 X时分秒也可以用%h-%m-%s替代
结构化时间(struct time)
struct_time元祖共有九个元素,分别为(年,月,日,时,分,秒,第几周,第几天,夏令时)
本地时区localtime的结构化时间
#北京时间localtime的结构化时间
print(local_struct_time=time.localtime())
time.struct_time(tm_year=2019, tm_mon=3, tm_mday=7, tm_hour=16, tm_min=22, tm_sec=11, tm_wday=3, tm_yday=66, tm_isdst=0)
#格林威治时区gmtime的结构化时间
print(gm_struct_time=time.gmtime())
time.struct_time(tm_year=2019, tm_mon=3, tm_mday=7, tm_hour=8, tm_min=22, tm_sec=11, tm_wday=3, tm_yday=66, tm_isdst=0)
不同格式时间的转换
strptime-> mktime->
格式化时间(FormatTime)<---------------->结构化时间(StructTime)<-------------->时间戳(Timestmap)
strftime<- localtime/gmtime
#结构化时间
now_time = time.localtime()
#把结构化时间转换成时间戳格式
time_stmp=time.mktime(now_time)
#把结构化时间转换成格式化时间
format_time=time.strftime("%Y-%m-%d %X",now_time)
#把格式化时间转换成结构化时间
local_time=time.strptime(fromat_time,"%Y-%m-%d %X")
程序暂停
time.sleep(1)
datetime模块
datetime模块一般用于时间的加减
#获取当前时间
now=datetime.datetime.now()
#调整时间
datetime.datetime.now()+datetime.timedelta(3) #当前时间加三天
datetime.datetiem.now()+datetime.timedelta(hours=3) #当前时间加三天
#调整时间默认是按照天调整,减三天用减号或加上负的天数,可以指定关键字实参按照hours,minutes,seconds调整时分秒,但是不能按照年,月调整
#时间替换
now_time=datetime.datetime.now()
now_time.replace(需要替换的参数)
#replace方法可以替换年,月,日,时,分,秒
random模块
random模块一般用于生成随机数
import random
#大于0且小于1之间的小数
random.random()
#大于等于1且小于等于3的整数
random.randint(1,3)
#大于等于1且小于3的整数
random.randrange(1.3)
#大于1小于3的小数
random.uniform(1,3)
#列表中的一个元素
random.choice(list)
#列表中的n个元素
random.sample(list,n)
#列表打乱顺序
random.shuffle(list)
os模块
os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口,多用于文件处理
#创建文件夹
os.mkdir(filename)
#删除空文件夹,递归往上删除空文件夹
os.removedirs(path/filename)
#删除一个空文件夹
os.rmdir(path/filename)
#列出文件夹内所有文件名和隐藏文件名
print(os.listdir(path/filename))
#删除文件
os.remove(filename)
#重命名文件
os.rename(filename,new_filename)
#打印环境变量
print(os.environ)
#执行文件添加环境变量(牢记)
print(os.path.dirname(filename))
sys.path.append(filename)
#判断文件是否存在
print(os.path.exists(filename))
#拼接文件路径,因为不同系统的路径拼接符不一样
os.path.join(dirname,filename)
#计算文件大小(牢记)
print( os.path.getsize(filename))
#打印文件夹下所有文件夹和文件
print(os.walk(dirname).__next__())
sys模块
sys模块负责程序与python解释器的交互,提供了一些列的函数和变量,用于操控python的运行环境
import sys
#牢记.命令行参数list,第一个元素是程序本身路径
sys.argv
#获取python解释器版本
sys.hexversion
#获取当前文件导入模块的路径
sys.path
#print本质
sys.stdout.write(content)
#input本质
sys.stdin.read(n)#n表示输入字符限制
json和pickle模块
序列化
把对象从内存中变成可存储或传输的过程称之为序列化
序列化的优点:
- 持久保持状态
- 跨平台数据交互
json
json序列化和反序列化支持跨平台,但是只能传输字典或列表
json.dumps和json.loads是在内存中互相转化
序列化:json.dump
反序列化:json.load
pickle
pickle的序列化和反序列化只支持python本身,但是可以存储所有的数据.pickle是以二进制的形式保存文件
序列化:pickle.dump(因为是使用二进制进行存储的,所以文件的默认打开方式必须是wb
反序列化:pickle.load(因为是使用二进制进行存储的,所以文件的默认打开方式必须是rb
浙公网安备 33010602011771号