2016-07-05 8 views
0

Ich versuche, .pkl-Dateien zu laden, die sich in demselben Verzeichnis befinden, in dem sich meine .py-Datei befindet. Im Folgenden ist mein Code:laden Python Pickle (.pkl) Datei

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() 

Ich halte in den Fehler auf Lauf:

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

Gibt es eine einfache Möglichkeit, diesen Fehler zu beheben?

Antwort

0

Der Eingang zu os.path.join sollte kein Tupel sein. Das heißt, der Befehl sollte lauten:

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

c. Leder ist korrekt. Entfernen Sie die zusätzlichen Klammern(). Beachten Sie auch, dass Sie os.path.join() auf scheinbar Dateinamen und Erweiterung verwenden?

Die Ausgabe davon wäre var_name/.pkl, nicht sicher, ob das ist, was Sie erwarten.

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