I'm new in python and i wanted to know if there is a solution for this problem:
I know that this may sound strange but i want to save the pickle.dump data into a variable. I begin to think that may i could bypass it by making a fake class to instead of writing in a file, writing in a variable:
class PickleDatatoVar(object):
def __init__(self):
self.data = None
def write(self, data):
self.data = data
def get(self):
return self.data
and then:
pick = PickleDatatoVar()
pickle.dump(Int, pick)
var = pick.get()
Nothing is presented as error, but the output is just a '.'
So is there a solution to instead of saving that in a file saving into a variable?
You are looking for an in-memory file object; in Python 2 that's
cStringIO.StringIO()
, for Python 3io.BytesIO()
; these act just like file objects and you can havepickle.dump()
write to these.However, the easier path would be to use
pickle.dumps()
to dump straight to a string object instead.Under the hood, what
pickle.dumps()
does for you is create an in-memory file object, write the pickle data to it and retrieve the string result for you; see the source code:but this way you don't have to do that extra work yourself.