How do I change it to a dictionary, then? Or do I have to delete it, and just code it in the main part of the code? ----- Original Message ----- From: "Ewald Ertl" <[EMAIL PROTECTED]> To: <tutor@python.org> Sent: Thursday, July 07, 2005 1:36 AM Subject: Re: [Tutor] Why is this error showing up? (Original Message: (Tutor) What's wrong with this code?) Ignore previous post.
> Hi! > > > on Thu, 7 Jul 2005 01:13:48 -0600 "Nathan Pinno" <[EMAIL PROTECTED]> wrote : > --------------------------------------------------------------------------------------------- > > Nathan Pinno > Thanks Wolfram for help with that error. > Nathan Pinno > > Nathan Pinno > Here's another that popped up: > Nathan Pinno > > Nathan Pinno > Traceback (most recent call last): > Nathan Pinno > File "D:\password.py", line 68, in ? > Nathan Pinno > for x in site.keys(): > Nathan Pinno > AttributeError: 'str' object has no attribute 'keys' > Nathan Pinno > > > The Traceback tells you on which line the error is. > site comes from your input : site = raw_input("Site: ") > which is a string and not a dictionary. > > > > Nathan Pinno > How to fix it? > Nathan Pinno > > Nathan Pinno > Thanks, > Nathan Pinno > Nathan Pinno > Nathan Pinno > ----- Original Message ----- > Nathan Pinno > From: "Wolfram Kraus" <[EMAIL PROTECTED]> > Nathan Pinno > To: <tutor@python.org> > Nathan Pinno > Sent: Thursday, July 07, 2005 1:02 AM > Nathan Pinno > Subject: Re: [Tutor] Why is this error showing up? (Original Message: > Nathan Pinno > (Tutor) What's wrong with this code?) Ignore previous post. > Nathan Pinno > > Nathan Pinno > > Nathan Pinno > > You wrote filename == raw_input("Filename to load: ") instead of > Nathan Pinno > > filename = raw_input("Filename to load: ") > Nathan Pinno > > > Nathan Pinno > > HTH, > Nathan Pinno > > Wolfram > Nathan Pinno > > > Nathan Pinno > > Nathan Pinno wrote: > Nathan Pinno > >> Hi all, > Nathan Pinno > >> > Nathan Pinno > >> Here's one of the messages that pops up: > Nathan Pinno > >> > Nathan Pinno > >> Traceback (most recent call last): > Nathan Pinno > >> File "D:\password.py", line 77, in ? > Nathan Pinno > >> filename == raw_input("Filename to load: ") > Nathan Pinno > >> NameError: name 'filename' is not defined > Nathan Pinno > >> > Nathan Pinno > >> Why is it popping up whenever I try to load a file? > Nathan Pinno > >> > Nathan Pinno > >> Here's the latest code: > Nathan Pinno > >> > Nathan Pinno > >> # This is the code for a password protected program to store passwords. > Nathan Pinno > >> password = "hello" > Nathan Pinno > >> print "The Password Program" > Nathan Pinno > >> print "Copyright 2005 Nathan Pinno." > Nathan Pinno > >> print > Nathan Pinno > >> answer = raw_input("What is the password? ") > Nathan Pinno > >> while password != answer: > Nathan Pinno > >> print "The password is incorrect." > Nathan Pinno > >> answer = raw_input("What is the password? ") > Nathan Pinno > >> def main_menu(): > Nathan Pinno > >> print "1) Add a login info card" > Nathan Pinno > >> print "2) Lookup a login info card" > Nathan Pinno > >> print "3) Remove a login info card" > Nathan Pinno > >> print "4) Print Login info list" > Nathan Pinno > >> print "5) Save login list" > Nathan Pinno > >> print "6) Open Login list" > Nathan Pinno > >> print "9) Exit" > Nathan Pinno > >> > Nathan Pinno > >> def load_login(site,filename): > Nathan Pinno > >> in_file = open(filename,"r") > Nathan Pinno > >> while 1: > Nathan Pinno > >> in_line = in_file.readline() > Nathan Pinno > >> if len(in_file) == 0: > Nathan Pinno > >> break > Nathan Pinno > >> in_line = in_line[:-1] > Nathan Pinno > >> [site,id,passcard] = string.split(in_line,",") > Nathan Pinno > >> list[site] = id and passcard > Nathan Pinno > >> in_file.close() > Nathan Pinno > >> > Nathan Pinno > >> def save_login(site,filename): > Nathan Pinno > >> out_file = open(filename,"w") > Nathan Pinno > >> for x in site.keys(): > > site comes form your input : site = raw_input("Site: ") > and is a string and not a dictionary. > Perhaps you will use here "sites", but there are no items added to > sites?? > > > Nathan Pinno > >> out_file.write(x+","+sites[x]+"\n") > Nathan Pinno > >> out_file.close() > Nathan Pinno > >> > Nathan Pinno > >> menu_choice = "0" > Nathan Pinno > >> list = {} > Nathan Pinno > >> print "Welcome to the second half of the program." > Nathan Pinno > >> print main_menu() > Nathan Pinno > >> while menu_choice != "9": > Nathan Pinno > >> menu_choice = raw_input("Choose an option: ") > Nathan Pinno > >> if menu_choice == "1": > Nathan Pinno > >> print "Add a login info card" > Nathan Pinno > >> site = raw_input("Site: ") > Nathan Pinno > >> id = raw_input("User ID: ") > Nathan Pinno > >> passcard = raw_input("Password: ") > Nathan Pinno > >> list[site] = id and passcard > Nathan Pinno > >> menu_choice = raw_input("Choose an option: ") > Nathan Pinno > >> elif menu_choice == "2": > Nathan Pinno > >> print "Lookup a login info card" > Nathan Pinno > >> site = raw_input("Site: ") > Nathan Pinno > >> if site.has_key(site): > Nathan Pinno > >> print "The ID is: ",id(site) > Nathan Pinno > >> print "The password is: ",passcard(site) > Nathan Pinno > >> else: > Nathan Pinno > >> print site," was not found." > Nathan Pinno > >> menu_choice = raw_input("Choose an option: ") > Nathan Pinno > >> elif menu_choice == "3": > Nathan Pinno > >> print "Remove a login info card" > Nathan Pinno > >> site = raw_input("Site: ") > Nathan Pinno > >> if sites.has_key(site): > Nathan Pinno > >> del numbers[site] > Nathan Pinno > >> else: > Nathan Pinno > >> print site," was not found." > Nathan Pinno > >> menu_choice = raw_input("Choose an option: ") > Nathan Pinno > >> elif menu_choice == "4": > Nathan Pinno > >> print "Login Info" > Nathan Pinno > >> for x in site.keys(): > > Here's the next use of the input-String "site" as a dictionary which will fail. > > > > Nathan Pinno > >> print "Site: ",x," \tID: ",numbers[x]," \tPassword: > Nathan Pinno > ",numbers[x] > Nathan Pinno > >> print > Nathan Pinno > >> menu_choice = raw_input("Choose an option: ") > Nathan Pinno > >> elif menu_choice == "5": > Nathan Pinno > >> filename = raw_input("Filename to save: ") > Nathan Pinno > >> save_login(list,filename) > Nathan Pinno > >> menu_choice = raw_input("Choose an option: ") > Nathan Pinno > >> elif menu_choice == "6": > Nathan Pinno > >> filename == raw_input("Filename to load: ") > Nathan Pinno > >> load_login(list,filename) > Nathan Pinno > >> menu_choice = raw_input("Choose an option: ") > Nathan Pinno > >> print "Have a nice day!" > Nathan Pinno > >> > Nathan Pinno > >> Anything else that needs addressing? > Nathan Pinno > >> > Nathan Pinno > >> Thanks, > Nathan Pinno > >> Nathan Pinno > Nathan Pinno > >> http://www.npinnowebsite.ca/ > Nathan Pinno > >> > Nathan Pinno > > > Nathan Pinno > > _______________________________________________ > Nathan Pinno > > Tutor maillist - Tutor@python.org > Nathan Pinno > > http://mail.python.org/mailman/listinfo/tutor > Nathan Pinno > > > Nathan Pinno > _______________________________________________ > Nathan Pinno > Tutor maillist - Tutor@python.org > Nathan Pinno > http://mail.python.org/mailman/listinfo/tutor > Nathan Pinno > > > > ------------------- end ---------------------- > > HTH Ewald > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor