read sys.stdin, then raw_input
Fredrik Lundh
fredrik at pythonware.com
Thu Mar 2 07:08:06 EST 2006
Rory Campbell-Lange wrote:
> To clarify, how can I get a normal terminal prompt for raw_input to
> enable me to insert a value into variable 'sel'?
>
> The program wants to keep reading from the piped file, it seems.
>
> Rory
>
> On 01/03/06, Rory Campbell-Lange (rory at campbell-lange.net) wrote:
> > I'm stumped. I'm piping some content to a python program, but then want
> > the python program to prompt me for an answer. It goes on reading
> > the pipe and gives a "EOFError: EOF when reading a line".
> >
> > eg:
> > #!/usr/bin/python
> >
> > import sys
> > text = sys.stdin.read()
> > sel = raw_input('Selection? : ')
> >
> > Selection? : Traceback (most recent call last):
> > File "/tmp/z.py", line 5, in ?
> > sel = raw_input('Selection? : ')
> > EOFError: EOF when reading a line
> >
> > Advice much appreciated.
since there's only one input channel for a program (stdin), and raw_input
reads from that channel, I don't think there's a portable way to do this.
on unixoid systems, something like this could work:
import sys
text = sys.stdin.read()
# rebind sys.stdin to my tty
sys.stdin = open("/dev/tty")
sel = raw_input("Selection? : ")
</F>
More information about the Python-list
mailing list