what does "python -i" use as input stream (stdin)?

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Mon Sep 29 16:10:33 EDT 2008


En Fri, 26 Sep 2008 04:29:42 -0300, Almar Klein <almar.klein at gmail.com>  
escribió:

> I would still like to hear if anyone knows how I can change the input  
> stream
> that
> is used when running "python -i", but I would not be surprised if it is
> impossible...

Sure you can. You have to replace the file descriptor 0, that is,  
"standard input"; sys.stdin reads from there. The standard way is to use  
os.dup2:

c:\temp>type foo.txt
This line read from foo.txt


c:\temp>type redirect.py
import os

inp = open("foo.txt","r")
os.dup2(inp.fileno(), 0)
print "raw_input->", raw_input()

c:\temp>python redirect.py
raw_input-> This line read from foo.txt

This is not

-- 
Gabriel Genellina




More information about the Python-list mailing list