使用pickle可以把变量按照原来的形式存入硬盘,不像写入到txt文本中,是以字符串的形式,读取之后还要转化,很麻烦。
下面用简单代码演示保存到文件和再从文件导入的过程。
import pickle
fruit=['a', 'b', 'c','1', '2', '3h']
print('dump fruit=',fruit)
with open('fruit.kinds','wb') as f:
pickle.dump(fruit,f)
with open('fruit.kinds','rb') as f:
fruit2=pickle.load(f)
print('load fruit2=',fruit2)
程序运行结果如下:
dump fruit= ['a', 'b', 'c', '1', '2', '3h']
load fruit2= ['a', 'b', 'c', '1', '2', '3h']
pickle 可以保存的变量如下:
- Booleans,
- Integers,
- Floats,
- Complex numbers,
- (normal and Unicode) Strings,
- Tuples,
- Lists,
- Sets, and
- Dictionaries that ontain picklable objects.
tuples,lists,sets,dictionaries 必须包含的是上面可以pickle 的变量。
下面保存多个变量,稍微复杂点:
import pickle
fruit=['a', 'b', 'c','1', '2', '3h']
data=[1,2,3,6.2,6.1]
print('dump fruit=',fruit,data)
with open('fruit.kinds','wb') as f:
pickle.dump((fruit,data),f)
with open('fruit.kinds','rb') as f:
fruit2,data2=pickle.load(f)
print('load fruit2=',fruit2,data2)
运行结果如下:
dump fruit= ['a', 'b', 'c', '1', '2', '3h'] [1, 2, 3, 6.2, 6.1]
load fruit2= ['a', 'b', 'c', '1', '2', '3h'] [1, 2, 3, 6.2, 6.1]
也可以用json 方式存取到文件,方式一样,但是wb =>w, rb=>r ,只能文字方式保存。
import json
fruit=['a', 'b', 'c','1', '2', '3h']
data=[1,2,3,6.2,6.1]
print('dump fruit=',fruit,data)
with open('fruit.kinds','w') as f:
json.dump((fruit,data),f)
with open('fruit.kinds','r') as f:
fruit2,data2=json.load(f)
print('load fruit2=',fruit2,data2)