piping into a python script
Marc 'BlackJack' Rintsch
bj_666 at gmx.net
Thu Jan 24 10:25:51 EST 2008
On Thu, 24 Jan 2008 17:17:25 +0200, Donn Ingle wrote:
> Given these two examples:
> 1.
> ./fui.py *.py
> 2.
> ls *.py | ./fui.py
>
> How can I capture a list of the arguments?
> I need to get all the strings (file or dir names) passed via the normal
> command line and any that may come from a pipe.
>
> There is a third case:
> 3.
> ls *.jpg | ./fui.py *.png
> Where I would be gathering strings from two places.
>
> I am trying to write a command-line friendly tool that can be used in
> traditional gnu/linux ways, otherwise I'd skip the pipe stuff totally.
>
> I have tried:
> 1. pipedIn = sys.stdin.readlines()
> Works fine for example 2, but example 1 goes into a 'wait for input' mode
> and that's no good. Is there a way to tell when no input is coming from a
> pipe at all?
Usually Linux tools that can get the data from command line or files treat
a single - as file name special with the meaning of: read from stdin.
So the interface if `fui.py` would be:
1. ./fui.py *.a
2. ls *.a | ./fui.py -
3. ls *.a | ./fui.py *.b -
Ciao,
Marc 'BlackJack' Rintsch
More information about the Python-list
mailing list