Python pickle的基本擴展:變量以文件形式存取,基於pkl.dump()和pkl.load()

下面兩個接口,基於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的功能。

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