キーボード入力を期待するスクリプトがあります。Python で os.system('./script') を使用してそのスクリプトを呼び出すことができます。
別の呼び出しスクリプトからスクリプトに入力を送り返すにはどうすればよいですか?
アップデート:
スクリプトは次のとおりです。
$ cat script
#!/usr/bin/python
for i in range(4):
name=raw_input('enter your name')
print 'Welcome %s :) ' % name
forループなしで試してみると動作しますが、スクリプトが終了したときにのみ出力が表示されます。
>>> p = subprocess.Popen('./script',stdin=subprocess.PIPE)
>>> p.communicate('navras')
enter your nameWelcome navras :)
foor ループで試してみると、エラーがスローされます。新しい print ステートメントで stdout が更新されたときに、インタラクティブなステートメントを表示する方法
>>> p.communicate('megna')
enter your nameWelcome megna :)
enter your nameTraceback (most recent call last):
File "./script", line 3, in <module>
name=raw_input('enter your name')
EOFError: EOF when reading a line
(None, None)