On Fri, Jun 10, 2011 at 10:41 AM, MRAB <[email protected]> wrote:
> On 10/06/2011 18:21, Mark Phillips wrote:
>
>> I have a script that processes command line arguments
>>
>> def 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.
>
> How do I write my script so it picks up argument from the output of
commands that pipe input into my script?
Mark
--
http://mail.python.org/mailman/listinfo/python-list