2017-01-23 57 views
1

我明白这个问题很混乱,但我想不出一个更好的方式来把它...如何在另一个文件中回答另一个Python程序raw_input()请求?

让我解释一下,我有一个python文件,通过execfile()命令运行另一个python文件。它检查错误,但我希望它自己做,没有我监督。它检查错误的文件在其中有raw_input()命令,所以当我的主文件检查错误时,它会强制我填写raw_input()并按回车,以便脚本继续。

我正在寻找一种方法来运行execfile()另一个文件,并自动填写raw_input请求,所以我不必。

为了解释:

main.py

while True: 
    execfile('second.py') #Will stop for every raw_input(), loop stops too. 
    # Looking for way to fix, so the raw_input is filled and loop continues automatically 

second.py

print("Hello") 
a = raw_input(">") #This will stop main.py from looping, how do I autofill this request from main.py? 
print(a) 
+1

其实它仍然很混乱。请给出两个示例程序来展示你的目标。 –

+0

那么为什么不用临时快捷方式'raw_input()'与常量\随机值?有第三个脚本没有帮助任何人。 –

+0

使用'subprocess.Popen'可能 –

回答

2

所以这不会是完美的解决办法,但如果你使用bash来运行你的脚本很容易就可以做

echo "2" | python b.py 

其中b.py是

execfile('a.py') 

和a.py是

a = raw_input() 
print a 

希望它能帮助。

+0

这很棒,很聪明!有没有办法可以将1000+回显命令放在一行中?我循环播放节目的方式需要很多。 – user3525745

+0

@ user3525745。 'cat response_file'而不是'echo',其中'response_file'包含你想要打印的行。 –

+0

或者,在bash中循环:'while true;做回声“2”| python a.py;完成' –

相关问题