On Fri, Jun 10, 2011 at 10:41 AM, MRAB <pyt...@mrabarnett.plus.com> 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

Reply via email to