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的功能。

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