0
2つのスクリプトを1つだけ入力してから入力します。もう1人がスクリプトを起動します。それは半分しか働かず、私は誰かがこの問題についていくつかの光を当てることを望んでいた。Popenを使って別のスクリプトを起動して、入力を送信する
test.py
import subprocess
process = subprocess.Popen('python test2.py', shell=False,
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=None)
process.stdin.write("test\r\n".encode('utf-8'))
process.stdin.flush()
result = process.stdout.readline()[:-2].decode('utf-8')
print(result)
while result != "":
result = process.stdout.readline()[:-2].decode('utf-8')
print(result)
test2.py
s=input("input here:")
print(s)
期待出力:
input here:test
test
実際の出力:
input here:test
実際の出力から、何かが入力されていることがわかりますが、testという単語がstdinによって書き込まれていますが、スクリプトの印刷部分が見えません。 – kaminsknator
実際の出力は、 'NameError:name 'test' is not defined'の後ろに' input her'という行が続くトレースバックです。 – martineau
それでは、これを機能させるために何を修正する必要があるのかよく分かりません。 – kaminsknator