使用shelve模块保存变量(python)

利用 shelve 模块,你可以将 Python 程序中的变量保存到二进制的 shelf 文件中。这样,程序就可以从硬盘中恢复变量的数据。shelve 模块让你在程序中添加“保存”和“打开”功能。例如,如果运行一个程序,并输入了一些配置设置,就可以将这些设置保存到一个 shelf 文件,然后让程序下一次运行时加载它们。
使用方法:`

>>> import shelve
>>> shelfFile = shelve.open('mydata')
>>> cats = ['Zophie', 'Pooka', 'Simon']
>>> shelfFile['cats'] = cats
>>> shelfFile.close()

这个跟我们的字典十分类似,不过字典是变量,这里的shelve模块是将变量保持到二进制的shelf文件中。
我们的shelfFile对象与字典的使用方式类似,它也有keys和values.例如:

>>> shelfFile = shelve.open('mydata')
>>> list(shelfFile.keys())
['cats']
>>> list(shelfFile.values())
[['Zophie', 'Pooka', 'Simon']]
>>> shelfFile.close()

这样shelfFile其实和字典十分类似。
它的主要作用是可以保存我们在程序中的变量的。
对于不同的数据我们要选取合适的存储方式,比如如果纯文本可以简单的保存为txt即可,而对于程序中的一些变量,最好的方式就是使用shelve模块保存这些变量。

我们还可以使用pprint.pformat()函数来保存变量,需要先引入pprint模块。

>>> import pprint
>>> cats = [{'name': 'Zophie', 'desc': 'chubby'}, {'name': 'Pooka', 'desc': 'fluffy'}]
>>> pprint.pformat(cats)
"[{'desc': 'chubby', 'name': 'Zophie'}, {'desc': 'fluffy', 'name': 'Pooka'}]"
>>> fileObj = open('myCats.py', 'w')
>>> fileObj.write('cats = ' + pprint.pformat(cats) + '\n')
83
>>> fileObj.close()

pprint.pformat(),将会返回一个字符串,而字符串可以更好的写入文本文件中,这里我们写入的是一个py文件,通过pprint.pformat()处理后写入.py文件中,是符号python的语法的,因此如果我们要使用这些变量,可以把它当作模块直接引入就可以了。

>>> import myCats
>>> myCats.cats
[{'name': 'Zophie', 'desc': 'chubby'}, {'name': 'Pooka', 'desc': 'fluffy'}]
>>> myCats.cats[0]
{'name': 'Zophie', 'desc': 'chubby'}
>>> myCats.cats[0]['name']
'Zophie'

利用这种方式保存变量,我们可以用一个文本编辑器就可以打开和编辑,十分的简单,但是在程序中的变量,如果我们要保存它们,使用shelve模块更好。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值