用pickle,json 存取python變量到文件

使用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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章