makansij
makansij

Reputation: 9875

how to load pickled objects into a list of empty variables?

I have a list of variable names, and a list of names of pickled objects:

pickle_var_names = object1, object2   # both empty, which throws an error
pickle_names = ['object1', 'object2']

I wish to load the pickles called in pickle_names into pickle_var_names, respectively:

for pickle_var_name,pickle_name in zip(pickle_var_names,pickle_names):
    with open(pickle_name,'r') as pickle_fp:
        pickle_var_name = cPickle.load(pickle_fp)

How do I do initialize a list of variables to None to allow them to be assigned later?

Upvotes: 0

Views: 106

Answers (1)

John Gordon
John Gordon

Reputation: 33345

Lists are indexed by position, not by name, so you could do this:

picklevars = []
picklenames = ['object1', 'object2']
for picklename in picklenames:
    with open(pickle_name, 'r') as pickle_fp:
        picklevars.append(cPickle.load(pickle_fp))

Or, if you're able to use a dictionary instead of a list:

picklevars = {}
picklenames = ['object1', 'object2']
for picklename in picklenames:
    with open(pickle_name, 'r') as pickle_fp:
        picklevars[picklename] = cPickle.load(pickle_fp)

Upvotes: 1

Related Questions