加载Python Pickle(.pkl)文件

时间:2016-07-05 23:33:42

标签: python file pickle

我正在尝试加载.pkl文件,这些文件位于我的.py文件所在的目录中。以下是我的代码:

import os

def load_var(var_name):
    fid = open(os.path.join((var_name, '.pkl')))
    data = pickle.load(fid)
    fid.close()
    return data

def main():
    data = load_var('myfilename')

if __name__ == '__main__':
    main()

我继续遇到错误:

fid = open(os.path.join((var_name, '.pkl')))
TypeError: coercing to Unicode: need string or buffer, tuple found

有没有简单的方法来解决此错误?

2 个答案:

答案 0 :(得分:0)

os.path.join的输入不应该是元组。也就是说,该命令应为:

fid = open(os.path.join(var_name, '.pkl'))

答案 1 :(得分:0)

℃。皮革是正确的。删除额外的括号()。 另请注意,您正在使用os.path.join()看似什么文件名和扩展名?

它的输出是var_name / .pkl,不确定这是否是您所期望的。

>>> filename = "mytestfile"
>>> mypath = os.path.join(filename, ".pkl")
>>> 
>>> print mypath
mytestfile/.pkl