2014-11-01 46 views
0

我试图测试一些使用raw_input的脚本,我有一些预定义的输入文件,其中每行都是适当的输入。 E.g从一个文件读取raw_input

input.txt中:

y 
n 
y 
... 

我试图取代sys.stdin一个文件对象,但什么是错的。

with open("input.txt") as f: 
    sys.stdin = f 
    con = raw_input("aaa") # in reality this is a function which somewhere calls raw_input 
    print con # prints nothing 
    sys.stdin = old # saved earlier 

我想这就要求raw_input获得从该文件的输入,而随后stdin功能。 我有几个这样的文件,我想循环然后报告相应。 E.g在这个例子中,我想con包含'y'

但很明显:

with open("advanced_test1.in") as f: 
    print f.read() 

打印文件的内容如预期。

+2

u能解释更多的重量,你wanat做>> – Hackaholic 2014-11-01 12:14:47

+0

@Hackaholic我试图增加更多的细节 – SadStudent 2014-11-01 12:21:37

回答

3

当执行文件,使用<操作如下:

python myfile.py < input.txt 
+0

我所知道的但我也需要将一个变量传递给该函数(它调用'raw_input'),这就是为什么我想要替换'stdin'而不是仅仅使用'<' – SadStudent 2014-11-01 13:36:28