On Feb 2, 5:40 pm, "Rhodri James" <rho...@wildebst.demon.co.uk> wrote: > [Quoting restored for reduced > > On Mon, 02 Feb 2009 22:33:50 -0000, Lionel <lionel.ke...@gmail.com> wrote: > > On Feb 2, 2:01 pm, Mike Driscoll <kyoso...@gmail.com> wrote: > >> On Feb 2, 3:43 pm, Lionel <lionel.ke...@gmail.com> wrote: > >> > On Feb 2, 1:07 pm, "Diez B. Roggisch" <de...@nospam.web.de> wrote: > > >> >> This is written very slowly, so you can read it better: > > >> > Please post without sarcasm. > > On Usenet? You'll be wanting single unequivocal answers next! > > Seriously though, you had been asked several times for the traceback, > so that we could stop guessing and tell you for sure what was going > on, and you hadn't provided it. Diez's mild sarcasm was not uncalled- > for. The fact that you didn't have a traceback partially excuses you, > but it would have helped if you'd said so. > > > > > > > > >> > This is the output from my Python shell: > > >> > >>> DatafilePath = "C:\\C8Example1.slc" > >> > >>> ResourcefilePath = DatafilePath + ".rsc" > >> > >>> DatafileFH = open(DatafilePath) > >> > >>> ResourceFh = open(ResourcefilePath) > >> > >>> DatafilePath > > >> > 'C:\\C8Example1.slc'>>> ResourcefilePath > > >> > 'C:\\C8Example1.slc.rsc' > > >> > It seems to run without trouble. However, here is the offending code > >> > in my class (followed by console output): > > >> > class C8DataType: > > >> > def __init__(self, DataFilepath): > > >> > try: > >> > DataFH = open(DataFilepath, "rb") > > >> > except IOError, message: > >> > # Error opening file. > >> > print(message) > >> > return None > > You're catching the IOError, presumably so that you can fail > gracefully elsewhere. This may not be a particularly good > idea, and in any case it stops the exception reaching the > console where it would cause the traceback to be displayed. > More on this later. > > >> > ResourceFilepath = DataFilepath + ".src" > > As other people have pointed out, you've got a typo here. > > >> > print(DataFilepath) > >> > print(ResourceFilepath) > > >> > # Try to open resource file, catch exception: > >> > try: > >> > ResourceFH = open(ResourceFilepath) > > >> > except IOError, message: > >> > # Error opening file. > >> > print(message) > >> > print("Error opening " + ResourceFilepath) > >> > DataFH.close() > >> > return None > > [Huge amounts of text trimmed] > > Fair enough, you're catching the IOError so that you can > ensure that DataFH is closed. Unfortunately this concealed > the traceback information, which would have made it more > obvious to you what people were talking about. Given that > this has rather stuffed your C8DataType instance, you > might want to think about re-raising the exception after > you've closed DataFH and letting the outer layers deal > with it in a more appropriate fashion. > > Incidentally, this code isn't going to do anything useful > for you anyway even after you've fixed the typo. DataFH > and ResourceFH are both local variables to __init__ and > will be tossed away when it finishes executing. If you > want to use them later, make them self.data_fh and > self.resource_fh respectively. > > (PEP 8 recommends that you use lower_case_with_underscores > for variable or attribute names, and leave MixedCase for > class names.) > > -- > Rhodri James *-* Wildebeeste Herder to the Masses- Hide quoted text - > > - Show quoted text -
Very good comments. I'll be implementing some of your suggestions, to be sure. Thanks Rhodri. -- http://mail.python.org/mailman/listinfo/python-list