下面兩個接口,基於pickle實現了變量以文件形式存取:
def save_file(var, filename):
"""輸入一個變量和一個文件名,將這個變量存入這個文件名對應的文件中。這個函數基於pickle.dump
@param: var(python var): python中的一個變量
@param: filename(str): 變量將存入這個目標路徑。這個路徑最好是一個.pkl文件
@returns: None
@usage example: save_file(name_list, "save/namelist.pkl")
"""
tmp_file = open(filename, 'wb')
pkl.dump(var, tmp_file)
tmp_file.close()
def load_file(filename):
"""讀取一個文件名,加載這個文件名對應的內容。這個函數基於pickle.load
@param: filename(str): 文件名,對應一個通過save_file生成的文件
@returns: var(python var: 這個文件對應的python變量
@usage example: name_list = open_file("save/namelist.pkl")
"""
tmp_file = open(filename, 'rb')
var = pkl.load(tmp_file)
tmp_file.close()
return var
提供對應的單元測試(或者稱爲使用範例)供君參考:
def test_save_file():
va = [2, 3, 5, 7, 11]
save_file(va, "ls.pkl")
def test_load_file():
va = load_file('ls.pkl')
print(va)
這兩個接口適用於一切類型的變量。靈活使用這兩個接口,可以在python中實現類似matlab workspace的功能。