[Tutor] associating two objects without ORM and processing a text file
Dave Angel
davea at davea.name
Thu Feb 14 23:05:09 CET 2013
On 02/14/2013 04:33 PM, Prasad, Ramit wrote:
> Dave Angel wrote:
>> On 02/14/2013 12:35 PM, Prasad, Ramit wrote:
>>> neubyr wrote:
>>>> I am not sure how to save an object in memory to a file before exiting the program. Any examples or
>>>> related documentation links would be really helpful. I am guessing it would be using some kind of
>>>> before teardown method, but not sure about it. Any help?
>>>
>>> Look at the pickle or shelve modules.
>>> http://www.doughellmann.com/PyMOTW/pickle/index.html
>>> http://www.doughellmann.com/PyMOTW/shelve/index.html
>>>
>>
>> You miss the point. The OP wants to make sure the text file is saved no
>> matter how the program happens to exit. He's not asking how to format
>> the file.
>>
>
> Hmm. Good point Dave, I did miss that point.
>
> My knee jerk response is a try/finally block, but I am sure there
> are better ways.
>
> # UNTESTED
> stored_data = {}
> try:
> stored_data = load_data()
> while True:
> #<do program>
> except Exception:
> raise # reraise exception to keep trace and still
> # propogate error for attention
> finally:
> store_data(stored_data) # Save data since we are exiting
> # (intentionally or not).
That would be my reaction as well. I would, however make it conditional
on some changes having been made. That way if this program run only
made queries, the effort and risk of saving can be avoided.
The other thing I'd recommend is to store the data in an alternate file,
and only delete the original when the alternate is ready to rename.
That way, you can't readily get into trouble if something crashes while
saving.
--
DaveA
More information about the Tutor
mailing list