pickled object, read and write..

hg hg at nospam.org
Sun Apr 22 09:39:31 EDT 2007


israphelr at googlemail.com wrote:

> Hi all.
> 
> I have to put together some code that reads high scores from a saved
> file, then gives the user the opportunity to add their name and score
> to the high scores list, which is then saved.
> 
> Trouble is, I can't tell the program to read a file that doesn't
> exist, that generates an error.
> 
> So I must have a file created, problem HERE is everytime the program
> is run, it will overwrite the current list of saved high scores.
> 
> Advice would be much appreciated.


You can run this small script a few times to see that the file does not get
deleted

hg

import shelve


class Grades:
    def __init__(self):
        self.GRADES = 'GRADES'
        self.m_gdb = shelve.open('MYGRADES.dat')

        try:
            self.m_grades = self.m_gdb[self.GRADES]
        except:
            self.m_grades = []
            self.m_gdb[self.GRADES] = self.m_grades

        self.m_gdb.close()

    def Add(self, p_grade):
        self.m_gdb = shelve.open('MYGRADES.dat')
        self.m_grades.append(p_grade)
        self.m_gdb[self.GRADES] = self.m_grades
        self.m_gdb.close()

    def Grades(self):
        return self.m_grades

l_o = Grades()
print l_o.Grades()
l_o.Add(10)
print l_o.Grades()



More information about the Python-list mailing list