模块应用 time、datetime、random、os、sys、json、pickle

一、time模块

  • 用于不同时间格式的转换

import time

1:时间戳

print(time.time())
# 1560129555.4663873(python中从1970年开始计算过去了多少秒)

2:格式化时间(需要自己给定格式

print(time.strftime('%Y|%m|%d %H:%M:%S'))
#2019|06|10 14:53:16

3:结构化时间

1.print(time.localtime())  # 以北京时间为准
	#time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=14, tm_min=53, tm_sec=16, tm_wday=0, tm_yday=161, tm_isdst=0)
2.print(time.gmtime(0))  # 打印1970年的时间
	#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)
3.print(time.gmtime())  # 以格林威治时间为准,时间差为8h
	#time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=6, tm_min=53, tm_sec=16, tm_wday=0, tm_yday=161, tm_isdst=0)

4:结构化时间转格式化时间

struct_time = time.localtime()
print(time.strftime('%Y-%m-%d',struct_time))

#2019-06-10

5:结构化时间转时间戳

print(time.mktime(struct_time))

#1560149596.0

6:格式化时间转结构化时间

format_time = time.strftime('%Y-%m-%d %X')
print(time.strptime('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=0, tm_sec=0, tm_wday=5, tm_yday=152, tm_isdst=-1)

7:时间戳转换为结构化时间

stamp_time = time.time()
print(time.localtime(stamp_time))
	#time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=14, tm_min=53, tm_sec=16, tm_wday=0, tm_yday=161, tm_isdst=0)

8睡眠

time.sleep(3)
#睡了三秒钟

二、datetime模块

其作用在于时间的加减

import datatime

1获取当前时间

now=datetime.datetime.now()

print(type(now))
	#<class 'datetime.datetime'>
now=str(now)
print(now)
	#2019-06-10 15:07:47.342725
print(now.split()[0])
	#2019-06-10
print(now.split()[1])
	#15:07:47.342725
print(now+datetime.timedelta(days=5))	#默认为天

print(now+datetime.timedelta(5))

print(now-datetime.timedelta(-5))
#不可以加年月
print(now+datetime.timedelta(hours=5))	#加小时
print(now+datetime.timedelta(minutes=34))	#加分钟
print(now+datetime.timedelta(seconds=132))	#加秒

更改年月日时分秒

print(now.replace(year=2012,month=12,day=22,hour=5,minute=13,second=14))
2012-12-22 05:13:14.318159

三、random模块

import random

1:随机打印(0,1) 不会取0,1

print(random.random())
#0.6379598370829762

2:打印[n,m]的整数 取得n,m

print(random.randint(1,3))
#2

3:打印(n,m)之间的小数

print(random.uniform(1,3))
#1.0559676775461968

4:打印【n,m)的整数

print(random.randrange(1,3))
#2

5:牢记(从容器中随机选择一个)

count=0
while True:
	res=random.choice([10000,2,3,1,6])
	count+=5000
	if count==15000:
		print(f'恭喜获得一万元大奖)
		count=0
		break
	else:
		if res==10000:
			print('再来一次')
		else:
			print(f'恭喜你获得了{res}')
			

6:牢记(从文件中随机选择多个)

print(random.sample([1,'a',2,'b']))
#[2, 'a']

7:牢记打乱容器

lis=[1,2,3,4,5]
random.shuffle(lis)
print(lis)
#[5,4, 3, 2, 1]

四、os模块

其作用是和操作系统交互,文件操作

import os

python
1:创建文件夹
# os.mkdir('bbb')

2:删除空文件夹,递归往上删除空的文件夹
# os.removedirs(r'文件path')

3:删除一个空的文件夹
# os.rmdir(r'文件path')

4:列出文件夹内所有的文件名和隐藏文件名
# print(os.listdir(r'文件path'))

5:删除文件
# os.remove(r'文件path')

6:重命名文件名
# os.rename(r'文件path')

7:打印环境变量
# print(os.environ)

8:牢记(dirname),用执行文件添加环境变量
# print(os.path.dirname(r'文件path'))
	print(os.path.dirname(__file__))

9 import sys
# sys.path.append(r'文件path')

10:判断文件是否存在
print(os.path.exists(r'文件path')

11:拼接文件路径,因为不同的操作系统的路径拼接符不一样
#好比自己以后写的程序不是在自己的系统上运行,在linuxs系统上
print(os.path.join(r'文件path'))

1:创建文件夹

os.mkdir('bbb')

2:删除空文件夹,递归往上删除空的文件夹

os.removedirs

五、sys模块

其作用与python交互

import sys

1:牢记,当使用python file.py 参数,接收参数
 print(sys.argv)
# ['Z:/Python9期视频/day 17/05 sys模块.py']

2:获取解释器版本
  print(sys.hexversion)
#	50726128

六、json和pickle模块,以及什么作用

序列化
保存数据,(从内存到硬盘这个过程叫做序列化,这个序列化必须是规定格式)
保存的格式 为json文件

反序列化
把json文件从硬盘中读取出来

json文件并不是python所独有的,所以的语言都有json,跨平台/语言传输数据

json文件中只能写入ptthon中的dict/list/str/int/float/bool/None

import json

dic={'name':'nick'}
with open('test.json','w',encoding='utf8')as fw:
    json.dump(dic,fw)
with open('test.json','r',encoding='utf8')as fr:
    data=json.load(fr)
print(data)
#{'name': 'nick'} 
print(type(data))
#<class 'dict'>

pickle 也是序列化和反序列化,json可以跨平台,只支持dict/list/str/int/float/bool/None

pickle 支持python中任意数据类型,所以不能跨平台(不同平台的函数一定是不同的),pickle模块序列化过程是以二进制形式转换的

def func():
    print('f1')
import pickle

# pickle由于传输的是二进制,所以应该用b模式
with open(r'D:\上海python全栈9期\Python9期视频\day 17\m1\test.pkl','wb') as fw:
    pickle.dump(func,fw)

with open(r'D:\上海python全栈9期\Python9期视频\day 17\m1\test.pkl','rb') as fr:
    data = pickle.load(fr)
data()

posted @ 2019-06-10 16:26  enazede  阅读(148)  评论(0编辑  收藏  举报