PyTAG: Saving and Loading
Mon, Sep 5, 2011 2-minute read
This is another of my “Python Text Adventure Game” tutorials. I’ll show you a simple way to save data to a file and load it again.
First of all, you have to import the regular expression module re.
Now set some variables:
name = raw_input("Your name: ") weapon = raw_input("Your weapon: ") level = raw_input("Your level: ")
Now you need a class with the save and load functions:
class Option: #The function to save your current data def save(self): #Open the file or create it if it does not exist<br /> self.f = open('saves.txt', 'w+') #Put everything you want to save in a single variable and use two spaces as a separator #It would look like this: Username 5 Sword self.savegame = name + " " + weapon + " " + str(level) #Now write it into the file. this will overwrite any existing save self.f.write(self.savegame) #Close the file self.f.close() def load(self): #Open the file self.f = open('saves.txt', 'r') #Create a list for the saves self.saves =  #Add each line to the list and count up for line in self.f: self.saves.append(line) #We are assuming that there is only one savegame and that it is in the first line #Now we use the imported re module to search the content of the file for a pattern and group it #You can find more infos about it here: http://docs.python.org/library/re.html self.match = re.search(r'(w+s*w*)ss(w+s*w*)ss(d+)', self.saves) #Now put the groups in the related variables name = self.match.group(1) weapon = self.match.group(2) level = self.match.group(3) #Close the file self.f.close()`
Add this code to test everything:
loop = 1 while loop == 1: print "What do you want to test?" print "1) Save" print "2) Load" choice = int(raw_input()) if choice == 1: # Create some variables Option().save() print "Saved" elif choice == 2: Option().load() print "Name: " + name print "Weapon: " + weapon print "Level: " + str(level) raw_input()