• 对象持久化


    文本文件存储用就会对象

    scores = [88,99,77,55]
    
    def write_scores():
        with open('data.list.txt','w',encoding='utf8') as f:
            f.write(str(scores))
        print('文件写入完成...')
    
    if __name__ == '__main__':
        write_scores()
    
    scores = [88,99,77,55]
    
    def write_scores():
        with open('data_list.txt','w',encoding='utf8') as f:
            f.write(str(scores))
        print('文件写入完成...')
    
    def read_scores():
        with open('data_list.txt','r',encoding='utf8')as f:
            lst = eval(f.read())
    
        lst[0] = 99
        print(lst)
    
    if __name__ == '__main__':
        read_scores()
    

      

    import pickle
    person = {'name':'Tom','age':20}
    s = pickle.dumps(person)
    s
    Out[5]: b'x80x03}qx00(Xx04x00x00x00nameqx01Xx03x00x00x00Tomqx02Xx03x00x00x00ageqx03Kx14u.'
    p = pickle.loads(s)
    p
    Out[7]: {'name': 'Tom', 'age': 20}
    type(p)
    Out[8]: dict
    person
    Out[9]: {'name': 'Tom', 'age': 20}
    pickle.dump(person,open('pickle.db','wb'))
    p = pickle.load(open('pickle.db','rb'))
    p
    Out[12]: {'name': 'Tom', 'age': 20}
    type(p)
    Out[13]: dict

    序列化自定义类实例

    shelve应用

    import shelve
    
    class Student:
        def __init__(self,name,age):
            self.name = name
            self.age = age
    
        def __str__(self):
            return self.name
    
    def write_shelve():
        s = Student('Tom',20)
        db = shelve.open('shelve_student_db')
        db['s'] = s
        db.close()
    
    
    if __name__ == '__main__':
      write_shelve()
    

     

    Out[13]: dict
    ord('A')
    Out[14]: 65
    chr(184)
    Out[15]: '¸'
    chr(282)
    Out[16]: 'Ě'
    chr(65)
    Out[17]: 'A'
    ord('优')
    Out[18]: 20248
    chr(28249)
    Out[19]: '湙'
    

      

    s1 = 'ABCD'
    s1.encode('ASCII')
    Out[21]: b'ABCD'
    s2 = '优品课堂'
    type(s2)
    Out[23]: str
    s2.encode('UTF-8')
    Out[24]: b'xe4xbcx98xe5x93x81xe8xafxbexe5xa0x82'
    s2.encode('UTF-16')
    Out[25]: b'xffxfex18Oxc1Txfex8bx02X'
    b1 = b'xe4xbcx98xe5x93x81xe8xafxbexe5xa0x82'
    type(b1)
    Out[27]: bytes
    b1.decode('utf-8')
    Out[28]: '优品课堂'
    b1.decode('utf-16')
    Out[29]: '볤ue598膓꿨ue5be芠'
    b1.decode('utf-8')
    Out[30]: '优品课堂'
    s1
    Out[31]: 'ABCD'
    s2
    Out[32]: '优品课堂'
    s1.encode()
    Out[33]: b'ABCD'
    import sys
    sys.getdefaultencoding()
    Out[35]: 'utf-8'
    

     

    open('data,txt','w',encoding='utf8').write('优品课堂')
    Out[2]: 4
    open('data.txt','w',encoding='utf8').write('优品课堂')
    Out[4]: 4
    open('data.txt','r',encoding='utf8').read()
    Out[5]: '优品课堂'
    open('data2.txt','w').write('优品课堂')
    Out[6]: 4
    open('data2.txt','r',encoding='gbk').read()
    Out[7]: '优品课堂'
    

     

     

  • 相关阅读:
    Trachtenberg(特拉亨伯格)速算系统
    English Conversations You Can Download for Free (Spoken English MP3/Audio Files)
    rel=nofollow 是什么意思
    移动端 触摸事件 ontouchstart、ontouchmove、ontouchend、ontouchcancel
    <mate name="viewport">移动端设置详解
    jquery简单实现tab选项卡效果
    PHP new StdClass()创建空对象
    PHP可变函数
    jQuery中this与$(this)的区别实例
    jQuery给动态添加的元素绑定事件的方法
  • 原文地址:https://www.cnblogs.com/shirleysu90/p/12051374.html
Copyright © 2020-2023  润新知