On 10/06/2011 18:21, Mark Phillips wrote:
I have a script that processes command line argumentsdef main(argv=None): syslog.syslog("Sparkler stared processing") if argv is None: argv = sys.argv if len(argv) != 2: syslog.syslog(usage()) else: r = parseMsg(sys.argv[1]) syslog.syslog(r) return 0 if __name__ == "__main__": sys.exit(main()) When I run "python myscript fred" it works as expected - the argument fred is processed in parseMsg as sys.arv[1] When I run "echo fred | python myscript" the script thinks there are no arguments, so it prints out the usage statement. Is the problem with the echo command, or how I wrote my script?
In the second case, there aren't any arguments. The echo command is writing "fred" to its standard output, which is attached to your script's standard input. -- http://mail.python.org/mailman/listinfo/python-list
