[Tutor] Re: Unix philosophy

Shantanoo Mahajan python at dhumketu.cjb.net
Tue Nov 18 09:28:17 EST 2003


+++ David Rock [17-11-03 17:53 -0600]:
| * Kalle Svensson <kalle at lysator.liu.se> [2003-11-17 20:17]:
| > Hi!
| > 
| > [Guillermo Fernandez Castellanos]
| > > I was having a look at the UNIX philosophy and I readed that:
| > > "Make every program a filter
| > > This makes it easy to build a set of filter components into ``one
| > > big filter.'' Programs can communicate by explicitly reading and
| > > writing files; that is / much / more complex to manage, and requires
| > > a lot of disk I/O for interim output. A set of filters may pass data
| > > straight from memory buffer to memory buffer, avoiding disk
| > > altogether."
| > > 
| > > I was wondering how I could be able to make my python programs work
| > > in a filter mode?
| > 
| > Basically, what you have to do is read input from stdin and write
| > output to stdout.  That makes it possible to use it as a filter in a
| > pipeline like
| > 
| >   grep something < file | python myprog.py | lp
| > 
| > or whatever.  The "|" signs here connect the first program's stdout to
| > the second program's stdin.
| 
| Yes, but the question is "how" to make it do that ;-) 
| 
| I use the fileinput module to do this:
|    http://www.python.org/doc/current/lib/module-fileinput.html

checkout sys.stdin, sys.stdout, sys.stderr

Regards,
Shantanoo

| 
| works great for all kinds of files, multiple files, stdin, etc.
| 
| -- 
| David Rock
| david at graniteweb.com
| -------------- next part --------------
| A non-text attachment was scrubbed...
| Name: not available
| Type: application/pgp-signature
| Size: 189 bytes
| Desc: not available
| Url : http://mail.python.org/pipermail/tutor/attachments/20031117/58616d69/attachment-0001.bin
| 
| ------------------------------



More information about the Tutor mailing list