• 模块(二)


    time模块

    1 时间戳

    time_stamp = time.time()
    print(time_stamp)
    
    
    1560149893.7927804     # 表示的是从1970年1月1日00:00:00开始按秒计算
    

    2 格式化时间

    format_time = time.strftime('%Y-%m-%d %X')  # 格式可自定义
    print(format_time)
    
    2019-06-10 14:58:13
    

    3 结构化时间

    共有9个元素共九个元素,分别为(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)

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

    4 格式转换

    (1)结构化转时间戳 time.mktime

    print(time.mktime(now_time))
    

    (2)结构化转格式化 time.strftime

    print(time.strftime("%Y-%m-%d %X", now_time))
    

    (3)格式化转结构化 time.strptime

    print(time.strptime('2013-05-20 13:14:52', '%Y-%m-%d %X'))
    

    5 延时出现

    time.sleep()

    import time
    i = 1
    while i <= 3:
        print (i) # 输出i
        i += 1
        time.sleep(1) # 休眠1秒
    

    datetime模块

    1 当前时间

    print(datetime.datetime.now())
    

    2 时间加减

    默认为day,可自由更改(小时,分钟等)

    print(now + datetime.timedelta(3))
    print(now + datetime.timedelta(-3))
    

    3 时间替换

    print(now.replace(hour=1,minute=20,second=13))   
    
    2019-06-10 01:20:13.528782   # 时间改为今天01:20:13
    

    random模块

    1 大于0且小于1之间的小数

    print(random.random())
    

    2 大于等于1且小于等于3之间的整数

    print(random.randint(1, 3))
    

    3 大于等于1且小于3之间的整数

    print(random.randrange(1, 3))
    

    4 列表内的任意一个元素,即1或者‘23’或者[4,5]

    print(random.choice([1, '23', [4, 5]]))
    

    5 列表元素任意n个元素的组合

    random.sample([], n)

    print(random.sample([1, '23', [4, 5]], 2))   # n=2
    

    os模块

    os模块多用于处理文件

    方法 详解
    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
    os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
    os.curdir 返回当前目录: ('.')
    os.pardir 获取当前目录的父目录字符串名:('..')
    os.makedirs('dirname1/dirname2') 可生成多层递归目录
    os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
    os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
    os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
    os.remove() 删除一个文件
    os.rename("oldname","newname") 重命名文件/目录
    os.stat('path/filename') 获取文件/目录信息
    os.sep 输出操作系统特定的路径分隔符,win下为"",Linux下为"/"
    os.linesep 输出当前平台使用的行终止符,win下为" ",Linux下为" "
    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[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
    os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
    os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
    os.path.getsize(path) 返回path的大小
    os.walk(path) 返回当前路径下的所有文件夹及文件

    sys模块

    sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。

    方法 详解
    sys.argv 命令行参数List,第一个元素是程序本身路径
    sys.modules.keys() 返回所有已经导入的模块列表
    sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息
    sys.exit(n) 退出程序,正常退出时exit(0)
    sys.hexversion 获取Python解释程序的版本值,16进制格式如:0x020403F0
    sys.version 获取Python解释程序的版本信息
    sys.maxint 最大的Int值
    sys.maxunicode 最大的Unicode值
    sys.modules 返回系统导入的模块字段,key是模块名,value是模块
    sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    sys.platform 返回操作系统平台名称
    sys.stdout 标准输出
    sys.stdin 标准输入
    sys.stderr 错误输出
    sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息
    sys.exec_prefix 返回平台独立的python文件安装的位置
    sys.byteorder 本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little'
    sys.copyright 记录python版权相关的东西
    sys.api_version 解释器的C的API版本

    序列化

    把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling

    序列化的优点:

    ​ 持久保存状态

    ​ 跨平台数据交互

    json模块

    json序列化能够达到跨平台传输数据的目的

    Json类型 Python类型
    {} dict
    [] list
    "string" str
    520.13 int或float
    true/false True/False
    null None

    序列化

    dic = {'name':'nick'}
    
    with open('user.json','w',encoding='utf8') as fw:
        json.dump(dic,fw)            
    

    反序列化

    dic = {'name':'nick'}
    
    with open('user.json','r',encoding='utf8') as fr:
        data = json.load(fr)
    print(data)
    

    pickle

    pickle的好处是可以存储Python中的所有的数据类型

    序列化(注意:pickle模块需要使用二进制存储,即'wb'模式存储)

    with open('Pickle序列化对象.pkl', 'wb') as fw:
        pickle.dump(struct_data, fw)
    

    反序列化

    with open('Pickle序列化对象.pkl', 'rb') as fr:
        pickle = pickle.load(fr)
    print(data)
    
  • 相关阅读:
    求求你规范下你的代码风格
    为啥用ip不可以访问知乎,而百度却可以?
    漫画:htts是如何保证一台主机把数据安全发给另一台主机
    如何从亿量级中判断一个数是否存在?
    广播路由算法 :我是如何优雅着把悄悄话带给其他人的
    什么?你不知道0.0.0.0和255.255.255.255这两个地址是干嘛的?
    一篇文章带你学会Linux三剑客之一:awk
    你真的了解 i++, ++i 和 i+++++i 以及 i+++i++ 吗?
    通俗易懂讲解TCP流量控制机制,了解一下
    一文读懂拥塞控制
  • 原文地址:https://www.cnblogs.com/einsam/p/10998151.html
Copyright © 2020-2023  润新知