title: Save a dictionary to a file (alternative to pickle) in Python?
body: <p><strong>Answered</strong> I ended up going with pickle at the end anyway</p>
  
  <p>Ok so with some advice on another question I asked I was told to use pickle to save a dictionary to a file. </p>
  
  <p>The dictionary that I was trying to save to the file was </p>
  
  <pre><code>members = {'Starspy' : 'SHSN4N', 'Test' : 'Test1'}
  </code></pre>
  
  <p>When pickle saved it to the file... this was the format</p>
  
  <pre><code>(dp0
  S'Test'
  p1
  S'Test1'
  p2
  sS'Test2'
  p3
  S'Test2'
  p4
  sS'Starspy'
  p5
  S'SHSN4N'
  p6
  s.
  </code></pre>
  
  <p>Can you please give me an alternative way to save the string to the file?</p>
  
  <p>This is the format that I would like it to save in</p>
  
  <p>members = {'Starspy' : 'SHSN4N', 'Test' : 'Test1'} </p>
  
  <p>Complete Code:</p>
  
  <pre><code>import sys
  import shutil
  import os
  import pickle
  
  tmp = os.path.isfile("members-tmp.pkl")
  if tmp == True:
      os.remove("members-tmp.pkl")
  shutil.copyfile("members.pkl", "members-tmp.pkl")
  
  pkl_file = open('members-tmp.pkl', 'rb')
  members = pickle.load(pkl_file)
  pkl_file.close()
  
  def show_menu():
      os.system("clear")
      print "\n","*" * 12, "MENU", "*" * 12
      print "1. List members"
      print "2. Add member"
      print "3. Delete member"
      print "99. Save"
      print "0. Abort"
      print "*" * 28, "\n"
      return input("Please make a selection: ")
  
  def show_members(members):
      os.system("clear")
      print "\nNames", "     ", "Code"
      for keys in members.keys():
          print keys, " - ", members[keys]
  
  def add_member(members):
      os.system("clear")
      name = raw_input("Please enter name: ")
      code = raw_input("Please enter code: ")
      members[name] = code
      output = open('members-tmp.pkl', 'wb')
      pickle.dump(members, output)
      output.close()
      return members
  
  
  #with open("foo.txt", "a") as f:
  #     f.write("new line\n")
  
  running = 1
  
  while running:
      selection = show_menu()
      if selection == 1:
          show_members(members)
          print "\n&gt; " ,raw_input("Press enter to continue")
      elif selection == 2:
          members == add_member(members)
          print members
          print "\n&gt; " ,raw_input("Press enter to continue")
      elif selection == 99:
          os.system("clear")
          shutil.copyfile("members-tmp.pkl", "members.pkl")
          print "Save Completed"
          print "\n&gt; " ,raw_input("Press enter to continue")
  
      elif selection == 0:
          os.remove("members-tmp.pkl")
          sys.exit("Program Aborted")
      else:
          os.system("clear")
          print "That is not a valid option!"
          print "\n&gt; " ,raw_input("Press enter to continue")
  </code></pre>