shelve与pprint

"""
利用 shelve 模块,你可以将 Python 程序中的变量保存到二进制的 shelf 文件中。
这样,程序就可以从硬盘中恢复变量的数据
"""
import shelve


def save():
    # 在 OS X 上,只会创建一个 mydata.db 文件
    # 调用函数shelve.open()并传入一个文件名,然后将返回的值保存在一个变量中。
    # 可以对这个变量的 shelf 值进行修改,就像它是一个字典一样。
    shelfFile = shelve.open('./shelfFile/mydata')
    cats = ['Zophie', 'Pooka', 'Simon']
    shelfFile['cats'] = cats
    shelfFile.close()


def read():
    shelfFile = shelve.open('./shelfFile/mydata')
    print(type(shelfFile))  # <class 'shelve.DbfilenameShelf'>
    print(shelfFile['cats'])  # ['Zophie', 'Pooka', 'Simon']
    print(list(shelfFile.keys()))  # ['cats']
    print(list(shelfFile.values()))  # [['Zophie', 'Pooka', 'Simon']]
    shelfFile.close()


read()
import pprint

cats = [{'name': 'Zophie', 'desc': 'chubby'}, {'name': 'Pooka', 'desc': 'fluffy'}]
print(pprint.pformat(cats))

fileObj = open('myCats.py', 'w')
fileObj.write('cats = ' + pprint.pformat(cats) + '\n')
fileObj.close()

myCats.py

cats = [{'desc': 'chubby', 'name': 'Zophie'}, {'desc': 'fluffy', 'name': 'Pooka'}]

测试

import myCats

print(myCats.cats)
print(myCats.cats[0])
print(myCats.cats[0]['name'])
posted @ 2022-02-10 09:00  fly_bk  阅读(44)  评论(0编辑  收藏  举报