Pythonコードでは、シェルにコマンドを頻繁に送信し、を使用して応答を読み取ります
import subprocess as S
x = subprocess.Popen('<command>', shell=True, stdout=S.PIPE)
x.stdout.read()
<command>
、問題のシェルコマンドはどこにありますか。ただし、この命令がサブプロセスで発行されると、stty size
たとえばコマンドの場合、シェルは次のように応答します。
stty: stdin isn't a terminal
そして私の命令は空の文字列を返します。http://docs.python.org/library/subprocess#popen-objectsにあるPythonのドキュメントに続いて、次のように置き換えstdout.read()
てみましたcommunicate()
。
x = subprocess.Popen('<command>', shell=True, stdin=S.PIP, stdout=S.PIPE)
x.stdout.read()
しかし、シェルはそれでも同じように応答します。
私の質問:Pythonに標準入力を端末として扱わせるにはどうすればよいですか?