• 序列化 pickle shelve json configparser


    模块pickle(皮考)

    dumps(当破死)序列化. 把对象转化成bytes

    loads(楼死) 反序列化. 吧bytes转化成对象

    dic = {"jay": "周杰伦", "jj": "大阳哥"}
    bs = pickle.dumps(dic)   #序列化
    print(bs)
    
    d = pickle.loads(bs)#反序列化
    print(d)

    dump(当破)序列化,吧对象转化成bytes 并且写入文件

    load(楼的) 反序列化,吧文件中的bytes读取,转化成对象

    class Cat:
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def catchMouse(self):
            print(self.name, self.age, "抓老鼠")
    lst = [Cat("猫1", 10), Cat("猫2", 9), Cat("猫3", 9), Cat("猫4", 9), Cat("猫5", 9)]
    
    f = open("pickle-test", mode="wb")
    pickle.dump(lst, f)
    # for el in lst:
    #     pickle.dump(el, f)
    
    f.flush()
    f.close()
    
    f = open("pickle-test", mode="rb")
    while 1:
        try:
            c1 = pickle.load(f)
            c1.catchMouse()
        except EOFError:
            break
    

      

    shilve(晒要付)  用open

    小型数据库. 操纵的是文件类型的字典. 像操作字典一样操作文件

    shelve.open(文件, writeback=True)(Ruai特百科)操作的东西写回原来的文件

    import shelve
    f = shelve.open('大杰哥',writeback=True)#创建文件
    f["jay"] = {'name': "周杰伦", 'age': 38, "hobby": "吃喝拉撒睡"}#像字典一样操作文件写入
    f['jay']['name'] = '胡辣汤'#像字典一样修改
    print(f['jay']['name'])
    print(f['jay'])
    f.close()#关闭哦
    

      

    json(杰森)
    前后端数据交互的通用的数据格式

    dumps() 字典转换成字符串

    loads() 吧字符转化成字典

    import json  #引入模块
    dic = {'a':'哈哈哈','b':'嘻嘻嘻','c':'嘿嘿嘿'}
    s = json.dumps(dic)#如果你的key或者value超出了ascii范畴。 就会显示成uxxxxx
    #所以用一下写法:
    s1 = json.dumps(dic,ensure_ascii=False)#干掉ascii码
    print(repr(s1),type(s1))#字符串,可以用repr()来看
    
    dic1 = json.loads(s)#把字符串解析成 字典
    print(dic1,type(dic1))
    

     写入文件,

    '''
    写入的时候
    1. 循环
    2. 用dumps吧字典转化成字符串
    然后手工在后面加入一个
    
    3. 写出
    '''
    import json
    f = open('wenjian_json',mode='w',encoding='UTF-8')
    lst = [{'a':"胡辣汤"},{'b':'滋滋冒油的大猪蹄子'},{'c':'盖浇饭'},{'d':'法国大蜗牛'}]
    for el in lst:
        s = json.dumps(el,ensure_ascii=False)+'
    '
        f.write(s)
    f.flush()
    f.close()
    '''
    读取的时候
    1. for line in f:
    2. strip()去掉空格
    3. loads()变成字典
    '''
    f = open('wenjian_json',mode='r',encoding='UTF-8')
    for line in f:
        line = line.strip()
        dic = json.loads(line)
        print(dic)
    

    configparser  (肯分哥怕色儿)

    处理配置文件的

    把配置文件作为一个大字典来处理就行了

    写入

    import configparser
    conf = configparser.ConfigParser()
    conf['DEFAULT'] = {
        'session-time-out':30,
        'user-alive':60,
        'connect-alive':10
    }
    
    conf['201-DB'] = {
        'ip':'192.168.16.201',
        'port':3306,
        'name':'alex',
        'password':'123'
    }
    
    conf['202-DB'] = {
        'ip':'192.168.16.202',
        'port':3306,
        'name':'alex',
        'password':'123'
    }
    conf['203-DB'] = {
        'ip':'192.168.16.203',
        'port':3306,
        'name':'alex',
        'password':'123'
    }
    f = open('db.ini',mode='w')#创建文件写进入
    conf.write(f)# 就这么玩,把文件扔进去,写到这个文件里
    

     增删改查:

    conf = configparser.ConfigParser()
    conf.read('db.ini')#读取出来
    #修改:
    conf['201-DB']['id'] = 'alex'#这只是内存上的改,
    conf.write(open('db.ini',mode='w'))#把在内存里的放入文件
    
    #删除
    del conf['201-DB']['id']
    conf.write(open('db.ini',mode='w'))
    
    #新增
    conf.set('201-DB','id','192.168.199')
    conf.write(open('db.ini',mode='w'))
  • 相关阅读:
    sgdisk基本用法
    影响性能的关键部分-ceph的osd journal写
    SSD固态盘应用于Ceph集群的四种典型使用场景
    Ceph在OpenStack中的地位
    Ceph的工作原理及流程
    Ceph系统的层次结构
    SharePoint运行状况分析器有关磁盘空间不足的警告
    Microsoft Exchange本地和Exchange Online可以与第三方服务共享
    SharePoint Server 2016 WEB 网站浏览器支持
    禁用自动映射的 Exchange 邮箱
  • 原文地址:https://www.cnblogs.com/xihuanniya/p/9761354.html
Copyright © 2020-2023  润新知