• python之常见模块(time,datetime,random,os,sys,json,pickle)


    time

    为什么要有time模块,time模块有什么用?(自己总结)

    1. 记录某一项操作的时间

    2. 让某一块代码逻辑延迟执行

    时间的形式

    时间戳形式

    # 时间戳
    print(time.time())  # 距离1970年过去了多少秒
    
    '''
    1560148086.4304533
    '''
    

    格式化时间

    import time
    
    # 格式化时间
    print(time.strftime("%Y-%m-%d  %X"))
    print(time.strftime("%Y-%m-%d  %H:%M:%S"))
    
    '''
    2019-06-10  14:28:06
    2019-06-10  14:28:06
    '''
    

    结构化时间

    import time
    
    # 结构化时间
    print(time.localtime())     # 北京时间
    print(time.gmtime())        # 0时区
    
    '''
    time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=14, tm_min=28, tm_sec=6, tm_wday=0, tm_yday=161, tm_isdst=0)
    time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=6, tm_min=28, tm_sec=6, tm_wday=0, tm_yday=161, tm_isdst=0)
    
    '''
    

    时间转化

    import time
    
    # 时间戳 转化为  结构化时间
    time.sleep(3)
    sjc = time.time()
    print(time.localtime(sjc))
    
    # 结构化时间 转化为  时间戳
    sgh_time  = time.localtime()
    print(time.mktime(sgh_time))
    
    '''
    
    time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=14, tm_min=28, tm_sec=9, tm_wday=0, tm_yday=161, tm_isdst=0)
    1560148089.0
    '''
    
    # 格式化时间  转化为   结构化时间
    print(time.strptime("1111-03-12 09:01:02","%Y-%m-%d %X"))
    
    # 结构化时间 转化为  时间戳
    sgh_time  = time.localtime()
    print(time.mktime(sgh_time))
    
    
    '''
    time.struct_time(tm_year=1111, tm_mon=3, tm_mday=12, tm_hour=9, tm_min=1, tm_sec=2, tm_wday=6, tm_yday=71, tm_isdst=-1)
    19-06-10 14:42:34
    
    '''
    

    总结:

    1. 重点掌握,time.time(),time.sleep()

    datetime

    1. datetime的作用:用于时间的加减

    2. datetime常用的方法

    import datetime
    
    # 获取年-月-日  时:分:秒 的常见做法
    now = datetime.datetime.now()
    print(now,type(now))
    now = str(now)
    print(now.split(".")[0])
    
    '''
    2019-06-10 14:47:47.878884 <class 'datetime.datetime'>
    2019-06-10 14:47:47
    
    '''
    
    
    # 只能加天,时,分,秒
    plf = datetime.datetime.now()
    print(plf + datetime.timedelta(5))      # 加5天
    print(plf - datetime.timedelta(5))      # 减5天
    print(plf - datetime.timedelta(-5))      # 加5天
    print(plf + datetime.timedelta(hours=10))      # 加10小时
    print(plf + datetime.timedelta(minutes=30))      # 加30分钟
    print(plf + datetime.timedelta(seconds=40))      # 加40秒
    
    '''
    2019-06-15 14:49:45.671068
    2019-06-05 14:49:45.671068
    2019-06-15 14:49:45.671068
    2019-06-11 00:49:45.671068
    2019-06-10 15:19:45.671068
    2019-06-10 14:50:25.671068
    2012-12-23 05:13:14.671068
    
    '''
    

    random

    1. random作用:产生随机数

    2. random常见用法

    import random
    
    print(random.random())      # 随机0-1之间的小数
    
    print(random.randint(0,1))          # [0,1]  0到1之间的整数
    
    print(random.choice([0,1,2,3,"plf"]))       # 从指定容器中,随机选择一个
    
    print(random.sample(["lt","plf","xs","cd"],2))      # 从指定容器中,随机选择多个
    
    '''
    0.48057373012022886
    1
    3
    ['cd', 'lt']
    
    '''
    

    OS

    1. os的作用:与系统进行交互

    2. os的常见用法

    命令 含义
    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
    os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
    os.curdir 返回当前目录:('.')
    os.pardir 获取当前目录的父目录字符串名:('..')
    os.makedirs("dirname1/dirname2") 生成多级目录
    os.removedirs("dirname1") 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    os.mkdir("dirname") 生成单级目录
    os.rmdir("dirname") 删除单级目录,相当于rmidr。目录不为空为报错
    os.listdir("dirname") 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
    os.remove() 删除一个文件
    os.rename("oldname","newname") 重命名文件/目录
    os.stat("path/filename") 获取文件/目录信息
    os.sep 输出操作系统特定的路径分隔符,win下为"",Linux下为"/"
    os.linesep 输出当前平台使用的行终止符
    os.pathsep 输出用于分割文件路径的字符串,win下为;,Linux下为:
    os.name 输出字符串指示当前使用平台,win->'nt' ; Linux->'posix'
    os.system("bash command") 运行shell命令,直接显示
    os.environ 获取系统环境变量
    os.path.abspath(path) 返回path规范化的绝对路径
    os.path.split(path) 将path分割成目录和文件名两个元素,返回一个元组
    os.path.dirname(path) 返回path的目录,即os.path.split(path)中的第一个元素
    os.path.basename(path) 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素
    os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
    os.path.isabs(path) 如果path是绝对路径,返回True
    os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
    os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
    os.path.join(path1) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
    os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
    os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
    os.path.getsize(path) 返回path的文件的大小(字节)

    sys

    1. sys的作用:与python交互

    2. sys常见的用法

    主要是获取系统的参数配置。

    用途较多:

    1. 获取系统的环境变量sys.path。
    2. 命令行参数List,第一个元素是程序本身路径
    3. 让程序退出sys.exit() 0为正常退出
    4. 获取当前执行脚本的平台:sys.platform
    import sys
    
    print(sys.path)     	# 获取环境变量
    
    sys.path.append("临时的环境变量")  	# 添加临时python环境变量
    
    print(sys.version)      # 获取python的版本
    
    print(sys.argv)         # 在命令行中,获取参数;第一个是文件名本身
    
    print(sys.platform)       # 返回操作系统平台名称
    
    print(sys.exit(n))         # 程序退出,并自定义退出码。
    

    json

    1. json的作用:

    a. 序列化(持久化的一种),将内存中的数据,以json文件类型保存。

    b. 反序列化,将json文件中数据读取出来

    c. 只能存储list,dict,None,bool,str,int/float 类型数据

    2. json的常见用法

    import json
    
    tup = ['plf','hello','world']
    
    a = json.dumps(tup)			# 将列表转化为json认识的字符串。
    print(a)				
    
    b = json.loads(a)			# 将json认识的字符串 转化为 列表
    print(b)
    
    with open("test.json","w",encoding="utf8") as fw:
        json.dump(tup,fw)       # 序列化,也称为持久化。  dump是序列化成文件
    
    with open("test.json","r",encoding="utf8") as fr:
        data = json.load(fr)    #  反序列化,也称为取数据	load是反序列化
    
    print(data)
    
    
    '''
    ["plf", "hello", "world"] <class 'str'>
    ['plf', 'hello', 'world'] <class 'list'>
    ['plf', 'hello', 'world']
    
    '''
    

    pickle

    1. pickle的作用:

    a. 存储python中一切数据类型

    b. 存储是以二进制进行存储的

    c. 一般存储不重要的数据

    2. pickle的常见用法

    import pickle
    
    def f1():
        print("from f1")
    
    a = pickle.dumps(f1)
    print(a,type(a))  	# 转化为了二进制
    
    b = pickle.loads(a)	
    print(b,type(b))
    b()     			# 调用f1函数
    
    '''
    b'x80x03c__main__
    f1
    qx00.' <class 'bytes'>
    <function f1 at 0x0000007475EA2E18> <class 'function'>
    
    '''
    
    
    
    with open("plf.pkl","wb") as fw:
        pickle.dump(f1,fw)
    
    with open("plf.pkl","rb") as fr:
        data = pickle.load(fr)
    
    print(data,type(data))
    
    data()		# 调用f1函数
    
    '''
    <function f1 at 0x000000C18D022E18> <class 'function'>
    from f1
    
    '''
    
  • 相关阅读:
    用VisualC#.NET编写服务器日期控件
    全局程序集缓存GAC是什么概念
    HttpRequest.Filter 属性
    创建ASP.Net自定义控件
    js/javascript 判断变量未定义
    DevExpress 汉化(简单、实用、快速)
    一个页面标题和过滤输出的解决方案
    用VisualC#.NET编写服务器日期控件(源碼)
    ASP.NET多语言支持组件简介
    ASP.NET服务器控件编程浅析
  • 原文地址:https://www.cnblogs.com/plf-Jack/p/10997959.html
Copyright © 2020-2023  润新知