2016-07-05 21 views
0

私の.pyファイルが置かれているのと同じディレクトリにある.pklファイルをロードしようとしています。私はエラーに実行し続けるロードPython Pickle(.pkl)ファイル

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 

あり、次は私のコードですか?

答えて

0

os.path.joinへの入力はタプルであってはなりません。つまり、コマンドは次のようになります。

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

c。革は正しいです。余分なブラケット()を取り外します。 また、ファイル名と拡張子のようにos.path.join()を使用していることにも注意してください。

その出力は、var_name/.pklになります。期待通りであるかどうかはわかりません。

>>> filename = "mytestfile" 
>>> mypath = os.path.join(filename, ".pkl") 
>>> 
>>> print mypath 
mytestfile/.pkl 
関連する問題