On Jul 16, 11:16 am, Gary Herron <[EMAIL PROTECTED]> wrote: > Keith Hughitt wrote: > > Hi all, > > > I am using someone else's script which expects input in the form of: > > > ./script.py <arg1> arg2 > > > I was wondering if the angle-brackets here have a special meaning? It > > seems like > > they specify an input and output stream to use in place of the > > console. I could not > > find anything in the python manual or Python in a Nut-shell though. > > > Anyone know? > > > Thanks, > > Keith > > -- > >http://mail.python.org/mailman/listinfo/python-list > > In most Unix/Linux and related OS shells, the angled brackets *do* > specify input and output streams as you surmise. However, they are > *not* seen by the script as command line arguments. (And they are > *not* brackets, and do not need to be matched. ) > > For any command, > cmd < file > redirects the contents of file to cmd's standard input, which in Python > is accessed by reading from sys.stdin (use input or raw_input or > sys.stdin.read...) > > Also for any command, > cmd > file > redirects the output of cmd to the named file. In Python this can be > accessed using print, sys.stdout.write, ... > > Anything written to sys.stderr will not be caught by the ">" > redirection, ans so will probably end up on the screen instead of in file. > > Also various shells will provide similar functionality using a variety > of similar syntaxes: <<, >>, >&, and |, and so on. > > Gary Herron
Thanks all for the quick response. I should have known it was shell- related. I haven't ever had to use this kind of redirection before, mostly just the single-bracket version to feed the contents of a file into some command. The reason it was causing me concern in the first place was that I was trying to execute a python script from Apache Ant, and it was failing. It turned out that when I escaped the angle brackets in Ant, they were there-after treated as normal command-line arguments, so when the script was then executed, it just had some additional values in sys.argv. I ended up getting around the issue by creating a small bash-script which simply wraps input in angle brackets and then executes the python script itself. That way I didn't have to escape anything in in Ant, and things worked well. Thanks everyone for taking the time to explain things to me. I really appreciate the help :) Take care, Keith -- http://mail.python.org/mailman/listinfo/python-list