主要對資料進行序列化反序列化,不過會在本地建立乙個類似資料倉儲,持久的儲存資料。
import shelve
#存資料
name = ['alce', 'bob', 'janice']
infos =
days=(31,28,31,30,31)
with shelve.open("c:\\users\\administrator\\desktop\\test1.txt",flag='c') as f:
f['name'] = name
f['infos'] = infos
f['days'] = days
#取資料
with shelve.open("c:\\users\\administrator\\desktop\\test1.txt",flag='c') as f:
for k,v in f.items():
print(k,':',v)
import shelve
import random
# 存入資料
with shelve.open('db')as db:
# scores為乙個列表,如果score中有值,則scores=score,如果沒有則scores=
scores = db.get("score", )
# accounts為乙個字典,如果account中有值,則accounts=account,如果沒有則accounts=
accounts = db.get('account', )
for i in range(3):
id = input("使用者名稱:")
password = input("密碼:")
if id in accounts and accounts[id] == password:
print('成績表為:', scores)
name = input("name:") # 向列表中新增學生姓名
cj = random.randint(50, 100) # 向列表中新增學生成績
print('成績表為:', scores)
npass = input("新密碼:")
db['score'] = scores
db['account'] =
break
else:
print("使用者名稱或密碼錯誤")
else:
print("三次機會已用完,再見!")
# 讀取儲存的資料資訊
print('-' * 20)
with shelve.open('db')as db:
for k, v in db.items():
print(k, ':', v)
python 中的shelve模組
shelve也是python提供給我們的序列化工具,比pickle用起來更簡單一些。shelve只提供給我們乙個open方法,是用key來訪問的,使用起來和字典類似。例子 儲存資料 1 import shelve,datetime 2importos3 if os.path.isdir os.get...
python模組詳解 shelve
shelve模組是乙個簡單的k,v 將記憶體資料通過檔案持久化的模組,可以持久化任何pickle可以支援的python資料。簡單的說對 pickle的更上一層的封裝。寫檔案import shelve d shelve.open test4 這個檔案不用存在,執行自動生成 name hello chi...
Python基礎 shelve模組
usr bin env python coding utf 8 shelve模組比pickle模組簡單,只有乙個open函式,返回類似字典的物件,可讀可寫 key必須為字串,而值可以是python所支援的資料型別 import shelve f shelve.open r shelve.txt 目的...