Day 17 time,datetime,random,os,sys,json,pickle

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()
上一篇:常用模块之 time,datetime,random,os,sys


下一篇:python基础语法11 内置模块time,datatime,random,os,sys,hashlib模块