[Tutor] How to I make it save the data properly? (was Re: How do Ifix this ValueError?)
Nathan Pinno
falcon3166 at hotmail.com
Wed Aug 10 04:24:51 CEST 2005
I fixed it. The problem was this line:
ID = line.strip().strip()
I fixed it so that it now reads:
ID = store.next().strip()
As a result, the program runs perfectly.
Nathan Pinno
---------------------------------------------------------------
Early to bed,
Early to rise,
Makes a man healthy, wealthy, and wise.
--Benjamin Franklin
-------------------------------------------------------------------
----- Original Message -----
From: "Nathan Pinno" <falcon3166 at hotmail.com>
To: "Tutor mailing list" <tutor at python.org>
Sent: Tuesday, August 09, 2005 7:46 PM
Subject: [Tutor] How to I make it save the data properly? (was Re: How do
Ifix this ValueError?)
>I tried fixing it. Here is the new code:
>
> #This is for a password protected program to store passwords.
> import getpass
> password = "hello"
> sitelist = {}
>
> def load_file(pw):
> import os
> filename = 'passcard.txt'
> if os.path.exists(filename):
> store = open(filename,'r')
> for line in store:
> site = line.strip()
> ID = line.strip().strip()
> pw[site] = ID
> else:
> store = open(filename,'w') # create new empty file
> store.close()
>
> def save_file(pw):
> store = open('passcard.txt',"w")
> for site,ID in sitelist.items():
> store.write(site + '\n')
> store.write(ID + '\n')
> store.close()
>
>
> def main_menu():
> print "1) Add a login info card"
> print "2) Lookup a login info card"
> print "3) Remove a login info card"
> print "4) Print Login info list"
> print "9) Save and Exit"
>
> def add_site():
> print "Add a login info card"
> site = raw_input("Site: ")
> ID = raw_input("User ID and passcard, seperated by |: ")
> sitelist[site] = ID
>
> def lookup_site():
> print "Lookup a login info card"
> site = raw_input("Site: ")
> if sitelist.has_key(site):
> print site,sitelist[site]
> else:
> print site," was not found."
>
> def remove_site():
> print "Remove a login info card"
> site = raw_input("Site: ")
> if sitelist.has_key(site):
> del sitelist[site]
> else:
> print site," was not found."
>
> def print_login_info():
> print "Login Info"
> for site in sitelist.keys():
> print "Site: ",site," \tID|Passcard: ",sitelist[site]+"\n"
>
>
> print "The Password Program"
> print "By Nathan Pinno"
> print
> load_file(sitelist)
> answer = getpass.getpass("What is the password? ")
> while password != answer:
> print "The password is incorrect."
> answer = getpass.getpass("What is the password? ")
>
> print "Welcome to the second half of the program."
> while 1:
> main_menu()
> menu_choice = int(raw_input("Choose an option (1-4, or 9: "))
> if menu_choice == 1:
> add_site()
> elif menu_choice == 2:
> lookup_site()
> elif menu_choice == 3:
> remove_site()
> elif menu_choice == 4:
> print_login_info()
> elif menu_choice == 9:
> break
> else:
> print "That's not an option!"
> save_file(sitelist)
> print "Have a nice day!"
>
> Here is the screenshot when I ran it (I've turned my password into stars
> for
> security) It's in the IDLE if anyone's wondering:
>
>>>>
> The Password Program
> By Nathan Pinno
>
> Warning: Problem with getpass. Passwords may be echoed.
> What is the password? hello
> Welcome to the second half of the program.
> 1) Add a login info card
> 2) Lookup a login info card
> 3) Remove a login info card
> 4) Print Login info list
> 9) Save and Exit
> Choose an option (1-4, or 9: 1
> Add a login info card
> Site: MSN Passport
> User ID and passcard, seperated by |: falcon3166 at hotmail.com|********
> 1) Add a login info card
> 2) Lookup a login info card
> 3) Remove a login info card
> 4) Print Login info list
> 9) Save and Exit
> Choose an option (1-4, or 9: 4
> Login Info
> Site: MSN Passport ID|Passcard: falcon3166 at hotmail.com|********
>
> 1) Add a login info card
> 2) Lookup a login info card
> 3) Remove a login info card
> 4) Print Login info list
> 9) Save and Exit
> Choose an option (1-4, or 9: 9
> Have a nice day!
>>>> ================================ RESTART
>>>> ================================
>>>>
> The Password Program
> By Nathan Pinno
>
> Warning: Problem with getpass. Passwords may be echoed.
> What is the password? hello
> Welcome to the second half of the program.
> 1) Add a login info card
> 2) Lookup a login info card
> 3) Remove a login info card
> 4) Print Login info list
> 9) Save and Exit
> Choose an option (1-4, or 9: 4
> Login Info
> Site: MSN Passport ID|Passcard: MSN Passport
>
> Site: falcon3166 at hotmail.com|******** ID|Passcard:
> falcon3166 at hotmail.com|********
>
> 1) Add a login info card
> 2) Lookup a login info card
> 3) Remove a login info card
> 4) Print Login info list
> 9) Save and Exit
> Choose an option (1-4, or 9: 9
> Have a nice day!
>>>>
>
> It's almost as it's saving the data seperately, instead of together. Why
> would it be doing this, and how do I fix it?
> ---------------------------------------------------------------
> Early to bed,
> Early to rise,
> Makes a man healthy, wealthy, and wise.
> --Benjamin Franklin
> -------------------------------------------------------------------
> _______________________________________________
> Tutor maillist - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
More information about the Tutor
mailing list