Angle brackets in command-line arguments?

Gary Herron gherron at
Wed Jul 16 17:16:04 CEST 2008

Keith Hughitt wrote:
> Hi all,
> I am using someone else's script which expects input in the form of:
>      ./ <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
> --

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

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

More information about the Python-list mailing list