> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:python-
> [EMAIL PROTECTED] On Behalf Of Donn
> Sent: Thursday, January 24, 2008 12:03 PM
> To: MichaƂ Bentkowski
> Cc: python-list@python.org
> Subject: Re: piping into a python script
> 
> I have tested getopt and it strips the lone '-' out. I can get it from

Try 'foo.py -- -'.  The '--' normally tells the parser to stop parsing args.  
Ex: date > -foo.txt; rm -foo.txt; rm -- -foo.txt


I think this will tell you if stdin is being piped in or not:
        import sys
        import os
        print os.isatty(sys.stdin.fileno())

D:\>type a.txt | python a.py
False

D:\>python a.py
True


Also if you're lazy, look at the StringIO class:

        if options.filelist is None and len(args) < 1:  # read from stdin
                f = sys.stdin
        elif options.filelist is not None and len(args) < 1:  # read filenames 
from file
                f = open(options.filelist, 'r')
        elif options.filelist is None and len(args) > 0:  # filenames on 
command line
                f = StringIO.StringIO('\n'.join(args))
        else:  ## Thanks for playing.
                parser.print_help()
                exit(1)

        if f:
                for filename in f:



> -- Segio Aragones (Groo the Wanderer Number 99)

Ah yes, Groo.  Ever wonder who would win if Groo and Forrest Gump fought each 
other?



-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to