No file from stdin
Matimus
mccredie at gmail.com
Thu May 24 15:40:53 EDT 2007
On May 24, 9:48 am, Tartifola <tartif... at gmail.com> wrote:
> Hi,
> suppose a script of python is waiting for a file from the stdin and none
> is given. How can I make the script to stop and, for example, print an
> error message?
>
> Sorry for the n00b question and thanks
I'm not exactly sure what you mean. This assumes that you intended the
contents of the file be piped in from the command line.
[code]
import sys
if sys.stdin.isatty():
print >>sys.stderr, "expected input from stdin"
sys.exit(1)
sys.stdout.write(sys.stdin.read())
[/code]
If you simply want a prompt "Enter a filename:", followed by an error
if it is not a valid file, I would use something like this:
[code]
import sys
filename = raw_input("Enter a filename:")
try:
f = open(filename)
except IOError,e:
print >>sys.stderr, e.strerror, e.filename
sys.exit(e.errno)
#do stuff with f
[/code]
More information about the Python-list
mailing list