import pickle
# ? pickle.dumps() ? 和 ? ?pickle.loads()
test_data = ['Save me!', 123, 'ss', True]
t1=pickle.dumps(test_data)
print(t1)
#? ? b'\x80\x03]q\x00(X\x08\x00\x00\x00Save me!q\x01K{X\x02\x00\x00\x00ssq\x02\x88e.'
t2=pickle.loads(t1)
print(t2)
# ? ?['Save me!', 123, 'ss', True]
# ? ?pickle.dump() ? ?和 ? ?pickle.load()
test_data = ['Save me!', 123, 'ss', True]
with open('testdata.txt','wb') as f:
? ? pickle.dump(test_data,f)
with open('testdata.txt','rb') as f:
? ? test_data = pickle.load(f)
如果你想保存多個對象叔营,一種方法是把這些對象先全部放在一個序列中鸿吆,在對這個序列進行存儲:
a = 123
b = "hello"
c = 0.618
data = (a, b, c)
...
pickle.dump(data, f)
另一種方法就是依次保存和提壤坠觥:
...
pickle.dump(a, f)
pickle.dump(b, f)
pickle.dump(c, f)
...
x = pickle.load(f)
y = pickle.load(f)
z = pickle.load(f)
dump 方法可以增加一個可選的參數(shù)钙态,來指定用二進制來存儲:
pickle.dump(data, f, True)
而 load 方法會自動檢測數(shù)據(jù)是二進制還是文本格式慧起,無需手動指定。