对象持久化

文本文件存储用就会对象

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]: '优品课堂'

 

 

原文地址:https://www.cnblogs.com/shirleysu90/p/12051374.html