Running script in __main__ shows no output in IDLE
Scott David Daniels
scott.daniels at acm.org
Mon May 22 19:57:56 EDT 2006
heidi.hunter at fantasy-interactive.com wrote:
> I just downloaded the most recent (2.4.3) Python and IDLE (1.1.3) to
> Windows XP Professional. I'm new to the IDLE environment, so hopefully
> someone can tell me what I'm missing here! Below is the code, which I'm
> editing within IDLE, and attempting to test with the Run commands.
>
> I was expecting to see at least see the prints to stdout from the if
> __name__ ... statement and main() function, but when I use F5 Run
> module I don't see any output or errors. Any suggestions? Does IDLE
> still need the executable file statement at the top even if I run it
> explicity?
>
> ---------------------------------------------------------------------------------------
> import sys
> from xml.sax import ContentHandler, make_parser
> from xml.sax.handler import feature_namespaces
>
> class AuthorHandler(ContentHandler):
> # """Converts an author file"""
>
> def __init__(self,outfilename):
> # """Constructor. Takes output file name."""
> self.outfile = ""
> self.insertCmd = "INSERT Authors SET "
...
Don't comment out those strings, you'll find them more useful in
Idle if they are there.
> def main(args):
> ...
> # Parse the file; your handler's methods will get called
> parser.parse(args[0])
>
> print ah.insertCmd
>
> if __name__ == "__main__":
> print "to main"
> main("\\Iceman\propod\flash\xml\webService\XmlData\Authors\Heidi")
As someone else said, use both a better string constant and a list,
since main looks at "args[0]".
If nothing else:
main([r"\\Iceman\propod\flash\xml\webService\XmlData\Authors\Heidi"])
To investigate the idle environment, simply add:
if __name__ == "__main__":
print "to main"
main([r"\\Iceman\propod\flash\xml\webService\XmlData\Authors\Heidi"])
else:
print 'Sorry, __name was %r, not "__main__".' % __name__
--Scott David Daniels
scott.daniels at acm.org
More information about the Python-list
mailing list