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'])