Why do you need a finally block there at all? Just terminate on the exception, there is no point in setting it to None then checking if its none.
~Tom On Fri, Jun 3, 2011 at 9:33 AM, Jacob Kruger <jac...@mailzone.co.za> wrote: > Sorry, but replying on list now as well. > > Either way, seems that while did have the import statement higher up in that > file for the sys module, maybe there was something interfering with that, > since when changed that statement to sys.exit() it's now working without any > issues. > > And, secondly, the reason I'm using tabs to handle indentation is partly > since the editor I specifically am using for python source editing prefers > that for use by VI/blind guys, and that's why it suits me, but > anyway...<smile> > > Jacob Kruger > Blind Biker > Skype: BlindZA > '...fate had broken his body, but not his spirit...' > > > ----- Original Message --------------- > > Subject: Re: [python-win32] 'exit is not defined' > From: "Amaury Forgeot d'Arc" <amaur...@gmail.com> > Date: Fri, 3 Jun 2011 09:43:47 +0200 > To: Jacob Kruger <jac...@mailzone.co.za> > >>Hi, >> >>2011/6/3 Jacob Kruger <jac...@mailzone.co.za>: >>> What I'm doing is trying to open a text file, but if it's not there, then I >>> tell the code to exit(), and while it works when running the source code >>> using the python executable, after I have run the code through py2exe, and >>> then try testing it, I get the following message: >>> >>> Traceback (most recent call last): >>> File "mapData.py", line 39, in <module> >>> NameError: name 'exit' is not defined >>> >>> The following is the actual little bit of code that's generating this after >>> being py2exe'ed - the last line is the line number being mentioned above: >>> >>> try: >>> fData = open(sMapName + ".txt", "r") >>> except: >>> fData = None >>> finally: >>> if not bool(fData): print("invalid map name - " + sMapName + >>> ".txt"); exit() >>> >>> >>> Any thoughts/ideas/alternative workarounds? >> >>"exit" is in the sys module, you shoud have an "import sys" somewhere, >>and then calll "sys.exit()". >>Maybe you tested your script from some IDE which already does "from >>sys import exit" for you? >> >>By the way, your code could be improved in several ways: >>- don't use tabs for indentation, use spaces instead. >>- "if not bool(fData)" could be rewritten as "if not fData" >>- open() always return a file object, so the logic could be: >> >>import sys >> >>try: >> fData = open(sMapName + ".txt", "r") >>except IOError: >> print("invalid map name - " + sMapName + ".txt") >> sys.exit() >> >>I hope I did not spoil all the fun - coding with Python is fun! >> >>-- >>Amaury Forgeot d'Arc > _______________________________________________ > python-win32 mailing list > python-win32@python.org > http://mail.python.org/mailman/listinfo/python-win32 > _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32