Thank you for your input. You have given me some more to consider.
> Date: Tue, 26 Apr 2016 22:17:53 +1000 > From: st...@pearwood.info > To: tutor@python.org > Subject: Re: [Tutor] Using a dictionary to map functions > > Hi Colby, and welcome! > > On Tue, Apr 26, 2016 at 12:30:38AM -0400, Colby Christensen wrote: > > > try: > > infile = open(raw_input("Enter input file name; name.txt:"),'r') > > except: > > print "Invalid filename" > > exit() > > I'm afraid that code is misleading: your error message lies. > > It may not be an "invalid filename". It could be any of the following: > > - an invalid file name (a file name prohibited by the operating system); > - a valid file name that just doesn't exist; > - a valid file name that you don't have permission to access; > - a valid file name that you can access, but a disk error occurred; > - a valid file name on a network drive, but a network error occurred; > > and probably more. There are few things more frustrating than dealing > with programs that lie to you: > > "What do you mean, invalid filename? The file is right there, I > can see it! How can this stupid program not find it? I've tried > a dozen times, double and triple checked that the file name is > correct, and it still says the file is invalid." > > Because the real error is *permission denied*, not invalid file name. > > Python spends a lot of effort to give detailed and useful error messages > when an error occurs. For example, if you try to open a file that > doesn't exist, Python reports: > > IOError: [Errno 2] No such file or directory > > and tells you the name of the file that you tried to open. If you don't > have permission to access it, it reports: > > IOError: [Errno 13] Permission denied > > and again reports exactly what went wrong. > > Python provides you with a detailed error message telling you exactly > what went wrong, and you throw that away, replacing it with a generic > message which will be wrong more often than right. Please don't do that > -- trust me, you will come to regret it. > > In this case, the right way to deal with errors opening the file is... > not to deal with them at all. Instead of this: > > try: > infile = open(raw_input("Enter input file name; name.txt:"),'r') > except: > print "Invalid filename" > exit() > > just write this: > > infile = open(raw_input("Enter input file name; name.txt:"),'r') > > (There are alternatives that are even better, but you probably haven't > learned about them yet.) > > > > -- > Steve > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor