On Mar 1, 2005, at 22:08, Nick Lunt wrote:
The way I did this was to use sys.stdin.readlines() to get the output from the pipe.
Here is the program:
[code] import sys, glob args = sys.stdin.readlines() # found on the net pat = sys.argv[1] for i in args: if (i.find(pat) != -1): print i, [/code]
My question is am I getting the output from the pipe in the correct way ? The way Im doing it works (so far) but should I be doing it another way ?
I don't think you are. You're using readlines(), which means your program won't execute until ps terminates.
UNIX philosophy is to have programs start acting as soon as possible -- in that case, as soon as the first line is available. You should be reading sys.stdin as an iterator (same thing you'd do for a file):
import sys for line in sys.stdin: # do stuff with that line of input
-- Max
maxnoel_fr at yahoo dot fr -- ICQ #85274019
"Look at you hacker... A pathetic creature of meat and bone, panting and sweating as you run through my corridors... How can you challenge a perfect, immortal machine?"
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor