Redirecting stdin to a file

Lie Ryan lie.1296 at gmail.com
Fri Dec 4 18:57:07 EST 2009


On 12/5/2009 10:31 AM, candide wrote:
> How do I redirect stdin to a text file ? In C, this can be done with the
> freopen() standard function, for instance
>
> FILE *foo = freopen("in.txt", "r", stdin);
>
>
> redirects stdin to the in.txt text file. Does anyone know a freopen()
> Python equivalent ?
>
> Notice that I'm not referring to shell redirection as the following
> command line shows :
>
> $ python myCode.py<  in.txt
>
> I need to hardcode the redirection inside the python source file.

I'm not sure how freopen() works in C, but perhaps you're looking for 
redirecting sys.stdin:
import sys
old_stdin = sys.stdin # save it, in case we need to restore it
sys.stdin = open('myfile')

you can also restore stdin using sys.__stdin__ instead of saving the old 
one, but in the case you or someone else is redirecting the stdin twice...



More information about the Python-list mailing list