zoukankan      html  css  js  c++  java
  • pthon学习笔记五常用库-time,os,sys,json

    1.time库

    在Python中包含了若干个能够处理时间的库,而time库是最基本的一个,是Python中处理时间的标准库。time库能够表达计算机时间,提供获取系统时间并格式化输出的方法,提供系统级精确计时功能(可以用于程序性能分析)。

    time库包含三类函数,以下介绍常用的函数:

       时间获取:time()、ctime()、gmtime()

       时间格式化:strftime()、strptime()

       程序计时:sleep()、perf_counter()

    获取时间:

    time()-------获取当前时间戳,浮点数形式

    import time as t
    
    #获取时间戳
    print int(t.time())
    #获取当前时间
    print t.localtime(t.time())
    printt.strftime('%y-%m-%d %H:%M%S',t.localtime)  #格式化时间戳

    ctime()-------以可读的方式返回字符串时间

    gmtime()-------计算机可以处理的时间格式

    时间格式化:将时间以合适方式展示出来的方法,类似于字符串的格式化,展示模板由特定格式化控制符组成。

    strftime(tpl,ts):tpl是格式化模板字符串,用来定义输出效果;ts是系统内部时间类型变量。

    >>> time.strftime("%Y-%m-%d %H:%M:%S",t)
    '2020-03-16 07:22:52'

    strptime(str,tpl):str是字符串形式的时间值;tpl是格式化模板字符串,用来定义输入效果。

    >>> import time
    >>> timeStr='2018-01-26 12:55:20'
    >>> time.strptime(timeStr,"%Y-%m-%d %H:%M:%S")
    time.struct_time(tm_year=2018, tm_mon=1, tm_mday=26, tm_hour=12, tm_min=55, tm_sec=20, tm_wday=4, tm_yday=26, tm_isdst=
    格式化字符串 日期/时间说明 取值范围
    %Y 年份 0000~9999
    %m 月份(数字) 01~12
    %B 月份(英文全称) January~December
    %b 月份(英文缩写) Jan~Dec
    %d 日期 01~31
    %A 星期(英文全称) Monday~Sunday
    %a 星期(英文缩写) Mon~Sun
    %H 小时(24小时制) 00~23
    %I 小时(12小时制) 01~12
    %p 上/下午 AM,PM
    %M 分钟 00~59
    %S 00~59

     程序计时:指测量起止动作所经历时间的过程,主要包括测量时间和产生时间两部分。time库提供了一个非常精准的测量时间函数perf_counter(),该函数可以获取CPU以其频率运行的时钟,这个时间往往是以纳秒来计算的,所以这样获取的时间非常精准。另外产生时间函数sleep(),它可以让程序休眠或产生一段时间。

    perf_counter():返回一个CPU级别的精确时间计数值,单位为秒。由于这个计数值起点不确定,连续调用求差值才有意义。例如:

    >>> import time
    >>> startTime=time.perf_counter()
    >>> print(startTime)
    9.621589306950508e-07
    >>> endTime=time.perf_counter()
    >>> print(endTime)
    41.478044816080114
    >>> endTime-startTime
    41.478043853921186

    sleep(s):s为休眠时间,单位秒,可以是浮点数。

    >>> import time
    
    >>> def wait():
    time.sleep(3.3)
    
    
    >>> wait()  #程序会等待3.3秒才输出

    2.os库

    os库基本介绍

      os库提供通用的,基本的操作系统交互功能(windows,mac os,linux)

      -os库是python标准库,包含几百个函数

      -与操作系统相关的,包括常用路径操作,进程管理,环境参数等

    其中:

      -路径操作:os.path子库,处理文件路径及信息

      -进程管理:启动系统中其他程序

      -环境参数:获得系统软硬件信息等环境参数

    一.路径操作

      os.path子库以path为入口,用于操作和处理文件路径;这里的path指的是目录或者包含文件名称的文件路径。

      import os.path

      import os.path as op

      1. os.path.abspath(path) 返回path在当前系统中的绝对路径

      2.os.path.normpath(path) 归一化path的表示形式,统一用\分割路径

       >>>os.path.normpath("D://PYE//file.txt")
    
      'D:\PYE\file\file.txxt'

      3.os.path.relpath(path)返回当前程序与文件之间的相对路径(relative path)

      4.os.path.dirname(path) 返回path中的目录名称

      5.os.path.basename(path)返回path中最后的文件名称

      6.os.path.join(path,*paths) 组合path与paths,返回一个路径字符串

      7.os.path.exists(path) 判断path对应文件或目录是否存在,返回True或False

      8.os.path.isfile(path) 判断path所对应是否为已存在的文件,返回True或False

      9.os.path.isdir(path)判断path所对应是否为已经存在的目录,返回True或False

      10.os.path.getatime(path) 返回path对应文件或者目录上一次的访问时间

      11.os.path.getatime(path) 返回path对应文件或者目录上一次的访问时间(access)

      12.os.path.getmtime(path)返回path对应文件或者目录最近一次的修改时间(modify)

      13.os.path.getctime(path)返回path对应文件或者目录的创建时间(create)

      14.os.path.getsize(path) 返回path对应文件的大小,以字节为单位

    二.进程管理

      1.os.system(command)

      -执行程序或者命令conmmand

      -在windows系统中,返回值为cmd的调用返回信息

    三.环境参数

      1.os.chdir(path) 修改当前程序操作的路径

      2.os.getcwd()返回程序的当前路径

      3.os.getlogin() 获得当前系统的登陆用户名称

      4.os.cpu_count() 会的当前系统的cpu数量

      5.os.urandom(n)获得n个字节长度的随机字符串,通常用于加解密算法

    实例:

    import os
    
    #创建一个文件夹mkdir
    os.mkdir('c:/log')
    
    #删除文件夹
    os.rkdir('c:/log')
    
    #改文件夹或目录名
    os.rename('c:/log','c:/newlog')
    
    #对目录的处理
    print ‘当前文件的目录:’,os.path.dirname(__file__)
    print ‘当前文件的上级录:’,os.path.dirname(os.path.dirname(__file__))
    #os.path.join(path,*paths) 组合path与paths,返回一个路径字符串,实现对day3下的login文件的读取。(day3在ununun的下级目录)
    base_die=os.path.dirname(os.path.dirname(__file__))  #获取到目录D:/git/python/ununun    
    f=open(os.path.join(base_dir,'day/login'),'r')
    print f.read()

    3.sys库

    主要是针对与Python解释器相关的变量和方法,不是主机操作系统。

     1 sys.argv    #获取命令行参数列表,第一个元素是程序本身,从第二个元素开始才是真正的参数
     2 sys.exit(n) #退出Python程序,exit(0)表示正常退出。当参数非0时,会引发一个SystemExit异常,可以在程序中捕获该异常
     3 sys.version #获取Python解释程器的版本信息
     4 sys.maxsize #最大的Int值,64位平台是2**63 - 1
     5 sys.path    #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值,第一个元素通常是个空字符串,表示当前目录。sys.path本质上是一个列表,可以进行append、insert、pop、remove等各种列表相关的操作,但通常都进行append操作,添加自己想要的查找路径。
     6 sys.platform    #返回操作系统平台名称
     7 sys.stdin   #输入相关,用于所有的交互式输入(包括input()函数)
     8 sys.stdout  #输出相关,用于print()的打印输出或者input()函数的提示符。
     9 sys.stderr  #错误相关,用于解释器自己的提示信息和错误信息。
    10 sys.exc_info()  #返回异常信息三元元组
    11 sys.getdefaultencoding()    #获取系统当前编码,默认为utf-8
    12 sys.setdefaultencoding()    #设置系统的默认编码
    13 sys.getfilesystemencoding() #获取文件系统使用编码方式,默认是utf-8
    14 sys.modules #以字典的形式返回所有当前Python环境中已经导入的模块
    15 sys.builtin_module_names    #返回一个列表,包含所有已经编译到Python解释器里的模块的名字
    16 sys.copyright   #当前Python的版权信息
    17 sys.flags   #命令行标识状态信息列表。只读。
    18 sys.getrefcount(object) #返回对象的引用数量
    19 sys.getrecursionlimit() #返回Python最大递归深度,默认1000
    20 sys.getsizeof(object[, default])    #返回对象的大小
    21 sys.getswitchinterval() #返回线程切换时间间隔,默认0.005秒
    22 sys.setswitchinterval(interval) #设置线程切换的时间间隔,单位秒
    23 sys.getwindowsversion() #返回当前windwos系统的版本信息
    24 sys.hash_info   #返回Python默认的哈希方法的参数
    25 sys.implementation  #当前正在运行的Python解释器的具体实现,比如CPython
    26 sys.thread_info #当前线程信息

    4.json

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。

    使用 JSON 函数需要导入 json 库:import json

    函数描述
    json.dumps 将 Python 对象编码成 JSON 字符串(str)
    json.loads 将已编码的 JSON 字符串解码为 Python 对象

    json.dumps:用于将 Python 对象编码成 JSON 字符串。

    语法:

    json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

    列表序列化实例:

    #!/usr/bin/python
    import json
    
    data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
    
    data2 = json.dumps(data)
    print(data2)
    
    #输出:
    [{"a": 1, "c": 3, "b": 2, "e": 5, "d": 4}]

    使用参数让 JSON 数据格式化输出:

    #!/usr/bin/python
    import json
    
    data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
    
    data2 = json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
    print(data2)
    
    #输出
    {
        "a": "Runoob",
        "b": 7
    }

    python 原始类型向 json 类型的转化对照表:

    PythonJSON
    dict object
    list, tuple array
    str, unicode string
    int, long, float number
    True true
    False false
    None null

    json.loads:用于解码 JSON 数据。该函数返回 Python 字段的数据类型。

    语法:

    json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

    实例:

    #!/usr/bin/python
    import json
    
    jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
    
    text = json.loads(jsonData)
    print(text)
    
    #输出
    {u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}

    json 类型转换到 python 的类型对照表:

    JSONPython
    object dict
    array list
    string unicode
    number (int) int, long
    number (real) float
    true True
    false False
    null None

    第三方库:Demjson

    函数描述
    encode 将 Python 对象编码成 JSON 字符串
    decode 将已编码的 JSON 字符串解码为 Python 对象

    Python encode() 函数用于将 Python 对象编码成 JSON 字符串。

    #!/usr/bin/python
    import demjson
    
    data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
    
    json = demjson.encode(data)
    print(json)
    
    #输出
    [{"a":1,"b":2,"c":3,"d":4,"e":5}]

    Python 可以使用 demjson.decode() 函数解码 JSON 数据。该函数返回 Python 字段的数据类型。

    #!/usr/bin/python
    import demjson
    
    json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
    
    text = demjson.decode(json)
    print(text)
    
    #输出
    {u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}
    • 文件的序列化与反序列化
    import json
    import requests
    
    #发送请求,返回值赋给r
    r=requests.get(url='http://10.1.30.101:20100/freezing/monitor/livemonitoring/selectEmergencySeverityStatistics?query_time_type=2&anti_cache=1609920966757')
    #print r.content.decode('utf-8') #以utf-8编码格式对返回内容进行解码,把json格式转化成python数据类型

    #对文件进行序列化-->就是把服务端的响应数据写到文件中
    json.dumps(
    r.content,open('weather.json','w'))

    #对文件进行反序列化-->就是读取文件的内容。
    #文件反序列化后类型是unicode类型
    dict1=(json.load(open('weather.json','r'))).encode('utf-8')  #对内容进行编码,成字符串类型
    dict2=json.loads(dict1) #对字符串类型进行编码,成字典类型
    print dict1,type(dict1) #输出读取的内容,内容的数据类型
    print dict2.[data].[0] #取出内容里的data下的第0个数据
    
    
  • 相关阅读:
    Flutter网络请求库Dio的封装(单例、动态baseUrl、拦截器、日志、请求loading)
    解决GitHub无法访问问题
    Flutter开发(18)- 屏幕适配
    【Flutter 实战】各种各样形状的组件
    vscode 清除多余空行
    项目实战整理 Flutter 代码与目录规范v1.0
    flutter 显示表情
    vscode常用快捷键与插件推荐
    在vscode中开发Flutter alt + enter快捷键不起作用(没反应)的解决方法
    Flutter Icons 内置图标库,全套Material图标
  • 原文地址:https://www.cnblogs.com/dydxw/p/14240278.html
Copyright © 2011-2022 走看看