time模块
1.作用:打印时间,需要时间的地方,暂停程序的功能
- 时间戳形式
time.time()
# 1560129555.4663873(python中从1970年开始计算过去了多少秒)
- 格式化时间(需要自己给定格式)
time.strftime('%Y-%m-%d %H:&M:&S')
#2019|06|10 15:22:01
- 结构化时间
time.localtime() #以北京时间为准
time.gmtime(0) #打印1970年的时间
time.gmtime() #以格林威治时间为准,时间差8h
#time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=15, tm_min=23, tm_sec=4, tm_wday=0, tm_yday=161, tm_isdst=0)
#time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
#time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=7, tm_min=23, tm_sec=4, tm_wday=0, tm_yday=161, tm_isdst=0)
- 结构化时间转格式化时间
struct_time=time.localtime()
time.strftime('%Y-%m-%d',struct_time)
#2019-06-10
- 结构化时间转换为时间戳
struct_time=time.localtime()
time.mktime(struct_time)
#1560151699.0
- 格式化时间转为结构化时间
format_time=time.strftime('%Y-%m-%d %X')
#2019-06-10 15:38:58
time.strtime('2019-06-01 12:00:00','%Y-%m-%d %X')
#time.struct_time(tm_year=2019, tm_mon=6, tm_mday=1, tm_hour=12, tm_min=12, tm_sec=23, tm_wday=5, tm_yday=152, tm_isdst=-1)
- 时间戳转换为结构化时间
stamp_time=time.time()
time.localtime(stamp_time)
#time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=15, tm_min=42, tm_sec=24, tm_wday=0, tm_yday=161, tm_isdst=0)
- 睡眠
time.sleep(3)
datetime模块
作用:时间加减
- 获取当前时间
now=datetime.datetime.now()
#2019-06-10 15:44:53.049700
- 时间加减 timedelta
now=datetime.datetime.now()
now+datetime.timedelta(days=5) #默认为天
now-datetime.timedelta(5) #默认为天
now+datetime.timedelta(-5) #默认为天
# print(now + datetime.timedelta(years=5)) # 无法加年和月
print(now + datetime.timedelta(hours=5))
print(now + datetime.timedelta(minutes=65))
print(now + datetime.timedelta(seconds=65))
- 时间替换 now.replace
now.replace(year=2012,month=12,day=22,hour=5,minute=13,second=14)
#2012-12-22 05:13:14.758463
random 模块
作用:随机数
- 打印(0,1)随机小数,不会取0和1
random.random()
- 打印[n,m]的整数,会取n和m
random.randint(1,3)
- 打印(n,m)的小数
randome.uniform(1,3)
- 打印[n,m)的整数 包括N 不包括M
random.randrange(1,3)
- 从容器中随机选一个
random.choice([10000, 2, 1, 3, 4])
- 从容器中选择多个
random.sample([1,2,3,4,5,6],2)
- 打乱容器顺序
lis=[1,2,3,4,5]
random.shuffle(lis)
os模块
作用:os和操作系统交互,文件操作
import os
os.mkdir('bbb') #创建文件夹
os.removedirs(r'd:\aa\') #删除一个空文件夹,递归往上删除空文件夹
os.rmdir(r'd:\aa') #删除一个空文件夹夹
os.listdir(r'd:\aaa') #列出文件夹内所有文件名和隐藏文件名
os.remove(r'd:\aaa\1.txt') #删除文件
os.rename('老文件名','新文件名')
os.environ #打印环境变量
os.path.dirname(__file__) #牢记(dirname),用在执行文件添加环境变量
os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径
os.path.exists('路径') #判断文件是否存在
so.path.join(r'路径','aa.txt') #拼接路径,因为不同操作系统的路径拼接符不一样
os.path.getsize('路径') #计算文件大小
os.walk() #打印文件夹下所有文件夹和文件
sys模块
作用:与python交互
import sys
sys.argv # 牢记(当使用Python file.py 参数 ,接收参数
sys.hexversion #获取解释器版本
sys.path # 牢记(获取当前文件导入模块的路径)
sys.stdout.write('123') #c写 print
sys.stdin.read(10) #c写 input
json 模块
作用:序列化 保存数据(从内存到硬盘这个过程叫做序列化,这个序列化必须得规定格式)
作用:反序列化 把json文件从硬盘中读取出来
特点:json文件并不是python所独有的,所有的语言都有json,跨平台/语言传输数据 json文件中只能写入python中的dict/list/str/int/float/bool/None
import json
json.dump(,) #第一个参数为内容,第二参数为打开文件的变量
json.load() #第一个参数为 打卡文件的变量
pickle模块
作用:pickle也是序列化和反序列化,json可以跨平台,只支持dict/list/str/int/float/bool/None
pickle支持python中任意数据类型,所以不能跨平台(不同平台的函数一定是不同的),pickle模块序列化过程是以二进制形式转换
import pickle
pickle.dump(func,fw)
data = pickle.load(fr)
data()