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个数据

 

posted @ 2021-01-06 11:59  大九~  阅读(288)  评论(0编辑  收藏  举报