On 01/23/2013 07:56 AM, Santosh Kumar wrote: > Yes, Peter got it right. > > Now, how can I replace: > > script, givenfile = argv > > with something better that takes argv[1] as input file as well as > reads input from stdin. > > By input from stdin, I mean that currently when I do `cat foo.txt | > capitalizr` it throws a ValueError error: > > Traceback (most recent call last): > File "/home/santosh/bin/capitalizr", line 16, in <module> > script, givenfile = argv > ValueError: need more than 1 value to unpack > > I want both input methods.
That's up to your program logic to do. Check to see if the arguments have been provided, and if not, open sys.stdin. It's quite common for command-line utilities to do this, but most of them use an explicit parameter '-' to indicate that you want the command to use standard-in. Again, you can code this any way you want. Personally I use one of the standard library command-line argument parsing modules, like optparse, but there are others that may be better. -- http://mail.python.org/mailman/listinfo/python-list