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个数据
    
    
  • 相关阅读:
    Fidder4 顶部提示 “The system proxy was changed,click to reenable fiddler capture”。
    redis 哨兵 sentinel master slave 连接建立过程
    虚拟点赞浏览功能的大数据量测试
    python基础练习题(题目 字母识词)
    python基础练习题(题目 回文数)
    python基础练习题(题目 递归求等差数列)
    python基础练习题(题目 递归输出)
    python基础练习题(题目 递归求阶乘)
    python基础练习题(题目 阶乘求和)
    python基础练习题(题目 斐波那契数列II)
  • 原文地址:https://www.cnblogs.com/dydxw/p/14240278.html
Copyright © 2011-2022 走看看