zoukankan      html  css  js  c++  java
  • 模块应用 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 17m1	est.pkl','wb') as fw:
        pickle.dump(func,fw)
    
    with open(r'D:上海python全栈9期Python9期视频day 17m1	est.pkl','rb') as fr:
        data = pickle.load(fr)
    data()
    
    
  • 相关阅读:
    transformer代码笔记----transformer.py
    transformer代码笔记----decoder.py
    transformer代码笔记----attention.py
    transformer代码笔记----encoder.py
    transformer代码笔记----train.py
    Transformer《Attention Is All You Need》的理论理解
    MNIST手写识别Python(详细注释)
    mysql之重用查询
    mysql之sql查询结果集小数保留
    java之jdk的安装
  • 原文地址:https://www.cnblogs.com/zhuyuanying123--/p/10998427.html
Copyright © 2011-2022 走看看