<br><div class="gmail_quote">On Thu, Aug 4, 2011 at 10:22 AM, Chris Rebert <span dir="ltr"><<a href="mailto:clp2@rebertia.com">clp2@rebertia.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div class="h5"><br>
> #!/usr/bin/python<br>
><br>
> import sys<br>
> if __name__ == '__main__':<br>
> if len(sys.argv) > 1:<br>
> try:<br>
> m = __import__(sys.argv[1])<br>
> sys.stdout.write(m.__file__ + '\n')<br>
> sys.stdout.flush()<br>
> sys.exit(0)<br>
> except ImportError:<br>
> sys.stderr.write("No such module '%s'\n" % sys.argv[1])<br>
> sys.stderr.flush()<br>
> sys.exit(1)<br>
> else:<br>
> sys.stderr.write("Usage: pywhich <module>\n")<br>
> sys.stderr.flush()<br>
> sys.exit(0)<br>
<br>
</div></div>Nothing wrong per se, but the flush()es seem unnecessary, and why do<br>
stdout.write() when you can just print()?<br></blockquote><div><br>The flushes are unnecessary, but sys.stdout.write has an advantage over print: sys.stdout.write works pretty much the same in both 2.x and 3.x; print doesn't.<br>
<br></div></div>