模块 json,sys,pickle,logging

sys模块

sys.argv           命令行参数List,第一个元素是程序本身路径
sys.exit(n)        退出程序,正常退出时exit(0)
sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

========================================================sys.argv de 作用

返回的命令是列表,通过列表把用户名和密码直接赋值

-------------------------------------sys.path  添加模块的路径,导入使用

============================logging 日志模块

import logging    写日志文件的级别,依次增加权限
logging.debug(‘debug message‘)
logging.info(‘info message‘)
logging.warning(‘warning message‘)
logging.error(‘error message‘)
logging.critical(‘critical message‘)  

日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL。


DEBUG:详细的信息,通常只出现在诊断问题上

INFO:确认一切按预期运行

WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作。

ERROR:更严重的问题,软件没能执行一些功能

CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行


这5个等级,也分别对应5种打日志的方法: debug 、info 、warning 、error 、critical。默认的是WARNING,当在WARNING或之上时才被跟踪

默认打印三种级别

====文件输出到屏幕   用basicConfig模块

把日志写到文件里--------  用basicConfig模块

日志文件固定格式  ,basicConfig只能在屏幕上或者是在文件里写,  是有缺陷的import logging
logging.basicConfig(level=logging.DEBUG,
                    format=‘%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s‘,
                    datefmt=‘%a, %d %b %Y %H:%M:%S‘,
                    filename=‘/tmp/test.log‘,
                    filemode=‘w‘)  

logging.debug(‘debug message‘)
logging.info(‘info message‘)
logging.warning(‘warning message‘)
logging.error(‘error message‘)
logging.critical(‘critical message‘)
 =======logging.getlogger  

因为级别,纸打印error

----用logging.getlogger() 同时输出

 定义一个函数写日志文件
def get_logger():

logger_obj=logging.getLogger()    print(type(logger_obj))          fh=logging.FileHandler("logger_file.txt")        fh.setLevel(logging.ERROR)    ch=logging.StreamHandler()    ch.setLevel(logging.CRITICAL)

formater=logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)

fh.setFormatter(formater)    ch.setFormatter(formater)

logger_obj.addHandler(fh)    logger_obj.addHandler(ch)

#logger_obj.setLevel(logging.DEBUG)

return logger_obj

logger_obj=get_logger()

logger_obj.info("info")logger_obj.error("error")logger_obj.warning("warning")logger_obj.debug("debug")logger_obj.critical("critical")
======================

json  序列化
import  json

--------------------序列化

dic={‘name‘:‘wuhao‘,"age":32}

f=open("json_data2.txt","w")  #创建一个文件把信息写到文件里方式一

data=json.dumps(dic)  #json.dumps 就是调用要序列化的对象

print(data)print(type(data))

f.write(data)   #写到文件里

方式二json.dump(dic,f) #   1、data=json.dumps(dic) 2、 f.write(data)   #做了两个事情

f.close()

 

----反序列化  json.loads

JSON表示的对象就是标准的JavaScript语言的对象一个子集,JSON和Python内置的数据类型对应如下:

=====注意  json 的格式必须是 ‘’   ”  双引号,否则就不是标准的序列化,Python中 ,单双引号无所谓

pickle模块

##----------------------------序列化
import pickle

dic={‘name‘:‘alvin‘,‘age‘:23,‘sex‘:‘male‘}

print(type(dic))#<class ‘dict‘>

j=pickle.dumps(dic)
print(type(j))#<class ‘bytes‘>

f=open(‘序列化对象_pickle‘,‘wb‘)#注意是w是写入str,wb是写入bytes,j是‘bytes‘
f.write(j)  #-------------------等价于pickle.dump(dic,f)

f.close()
#-------------------------反序列化
import pickle
f=open(‘序列化对象_pickle‘,‘rb‘)

data=pickle.loads(f.read())#  等价于data=pickle.load(f)

print(data[‘age‘])    

shelve模块

shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;key必须为字符串,而值可以是python所支持的数据类型


1

2

3

4

5

6

7

8

9

10

11

12

import shelve

 

f = shelve.open(r‘shelve.txt‘)

 

# f[‘stu1_info‘]={‘name‘:‘alex‘,‘age‘:‘18‘}

# f[‘stu2_info‘]={‘name‘:‘alvin‘,‘age‘:‘20‘}

# f[‘school_info‘]={‘website‘:‘oldboyedu.com‘,‘city‘:‘beijing‘}

#

#

# f.close()

 

print(f.get(‘stu_info‘)[‘age‘])

时间: 2024-10-06 15:03:50

模块 json,sys,pickle,logging的相关文章

python常用模块——json、pickle、shelve

常用模块 json pickle shelve json模块和pickle模块很像,方法都一样:json在js.python.java等等中通用,而pickle是python里的. 一. json模块 json模块只需要掌握 dumps和loads即可:另外两个用到时再补充吧: 1. dump() 格式如下: dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=N

序列化的两个模块(json和pickle)

到底什么是序列化(picking)呢? 我们把变量从内存中变成可存储或传输的过程称之为序列化 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上. 反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling json和pickle json和pickle模块,两个都是用于序列化的模块 json #json 是通用的,可以在各种语言里进行交互,只是一个简单的序列化方法#json把python对象转化成字符串,仅限于简单的数据类型,例如列表,字典,元组

day5 常用模块json和pickle

json 和 pickle json和pickle是用于字符串序列化和反序列化的过程,我们在存储和使用的时候,经常把列表存入文件,读取的时候我们还想以列表的形式读取.就需要使用json和pickle.json是支持所有的接口,pickle是python自己内置的接口. 用于序列化的两个模块 (1)json,用于字符串和python数据类型间进行转换 (2)pickle,用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:dumps.dump.loads.lo

python序列化模块json和pickle

序列化相关 1. json 应用场景: json模块主要用于处理json格式的数据,可以将json格式的数据转化为python的字典,便于python处理,同时也可以将python的字典或列表等对象转化为json格式的数据,便于跨平台或跨语言进行数据交互 功能: Json模块提供了四个功能:dumps.dump.loads.load Python 编码为 JSON 类型转换对应表: Python JSON dict object list, tuple array str string int,

常用模块 json 与 pickle的 使用

json 模块 import json from datetime import datetime json.dumps 与 json.dump 可以将常见的数据类型转变为字符串数据 1).对于datetime类型的数据,需要作出一些修改 data = datetime.now() 需要重写json里的一个类: class ComplexEncoder(json.JSONEncoder): def default(self, o): if isinstance(o,datetime): retu

2018-06-26-Python全栈开发day22-part1-os,json,sys,pickle,shelve模块介绍

1.os模块 1.1 os.getcwd() #获取当前目录 a=os.getcwd() print(a) 1.2 os.chdir() #更改脚本当前目录 os.chdir('path') 1.3 os.makedirs() os.makedirs('dirname1/diename2') 1.4 os.removedirs() 删除文件夹,可以一起删除当前文件下的子文件夹,不为空的话,为空则全删 1.5 os.makedir() 建立单个文件夹 1.6 os.rmdir() 删除单个文件夹

23 模块 os sys pickle json

一.   os模块 主要是针对操作系统的 用于文件操作 二.    sys 模块 模块的查找路径   sys.path 三   pickle 模块 1.  pickle.dumps(对象) 序列化  把对象拍散成字节 2.pickle.loads(字节) 反序列化,把字节整合成对象 3.pickle.dump(对象,文件) 把对象打散写入到文件, 序列化的内容不是给人看的 多个对象时  可以存入列表 4.pickle.load(文件) 读取文件 四.  json 模块 可以认为是python中的

python之路---23 模块 os sys pickle json

一.   os模块 主要是针对操作系统的 用于文件操作 二.    sys 模块 模块的查找路径   sys.path 三   pickle 模块 1.  pickle.dumps(对象) 序列化  把对象拍散成字节 2.pickle.loads(字节) 反序列化,把字节整合成对象 3.pickle.dump(对象,文件) 把对象打散写入到文件, 序列化的内容不是给人看的 多个对象时  可以存入列表 4.pickle.load(文件) 读取文件 四.  json 模块 可以认为是python中的

logging模块,序列化,random模块,json和pickle

1.logging logging模块用来记录软件的各种状态.,开发人员可以通过日志的内容对程序进行修改. import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message') 默认情况下logging打印到标准输

Python—序列化和反序列化模块(json、pickle和shelve)

什么是序列化 我们把对象(或者变量)从内存中变为可存储或者可传输的过程称为序列化.在python中为pickling,在其他语言中也被称之为serialization,marshalling,flattening等等.即序列化之后就可以将内存中的程序内容写入硬盘或者通过网络传输到其他机器上去.反序列化的过程则相反:将硬盘中的内容变为可以在内存中运行的程序的过程称为反序列化. Json模块 # encoding:utf-8 # 通过序列化和反序列化将内容存储到文件 import json json