日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python常用模块之shelve模块

發布時間:2025/7/14 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python常用模块之shelve模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python常用模塊之shelve模塊

shelve模塊是一個簡單的k,v將內存中的數據通過文件持久化的模塊,可以持久化任何pickle可支持的python數據類型

我們在上面講json、pickle模塊的時候,說過都不能dump都多次,那么是真的嗎?當然不是的, shelve模塊就可以dump多次,shelve模塊其實就是封裝了pickle模塊,并且順序不會亂,因為shelve模塊是k,v結構,給dump的數據指定一個名字,下次用這個名字就可以load回來。

序列化:
此模塊的操作在linux系統下講解

#!/usr/bin/pythonimport shelvef = shelve.open("shelve_test") # 使用shelve模塊打開一個文件names = ["li","xiao","rain"] info = {"name":"li","age":22}f['names'] = names # 持久化列表 f['info_dir'] = info # 持久化字典f.close()

shelve模塊的操作:

# 在linux系統下,ipython3 In [1]: import shelveIn [2]: f = shelve.open("shelve_test") # 此時的f就相當于是一個文件對象,即可以像字典樣操作In [3]: f.get('names') Out[3]: ['li', 'xiao', 'rain']In [4]: f.get('info_dir') Out[4]: {'name': 'li', 'age': 22}In [5]: f.keys() Out[5]: KeysView(<shelve.DbfilenameShelf object at 0x7f6a43269198>) # 是一個列表In [6]: list(f.keys()) Out[6]: ['names', 'info_dir'] # 列表中存了兩個持久化的kIn [7]: list(f.items()) Out[7]: [('names', ['li', 'xiao', 'rain']), ('info_dir', {'name': 'li', 'age': 22})]# 刪除 In [8]: del f['names'] # 刪除持久化的kIn [9]: f.close() # 關閉文件In [10]: f = shelve.open("shelve_test") # 重新打開文件In [12]: f.get('names') # 無任何輸出# 增加 In [13]: f['scores'] = [1,2,3,4,"rain"] # In [14]: f.close()In [15]: f = shelve.open("shelve_test")In [16]: f.get('scores') Out[16]: [1, 2, 3, 4, 'rain']# 修改,相當于是重新賦值 In [17]: f['scores'] Out[17]: [1, 2, 3, 4, 'rain']In [18]: f['scores'] = [1,2,3,4,5]In [19]: f.close()In [20]: f = shelve.open("shelve_test")In [24]: f['scores'] Out[24]: [1, 2, 3, 4, 5]

反序列化:

#!/usr/bin/pythonimport shelved = shelve.open('shelve_test')# print(d['names']) # 因為在之前的操作中已經刪除了這個 print(d['info_dir'])d.close()

輸出結果為:

root@DESKTOP-G4V06P4:~/codes# python3 反序列化.py {'age': 22, 'name': 'li'}

轉載于:https://www.cnblogs.com/xiaoyafei/p/9037195.html

總結

以上是生活随笔為你收集整理的python常用模块之shelve模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。