> -----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: [email protected]
> 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