私はPython用のIDEをPythonで作成していますが、サブプロセスを使用してユーザーのスクリプトと連携する必要があります。サブプロセスを使用してPythonスクリプトと対話する方法
私はサブプロセスの使用に全く新しいです、そして、私がここで何をしているのかよくわかりません。私は私が何をしようとしている表すテストスニペットを作成しました:
from subprocess import Popen,PIPE,STDOUT
import tkinter as tk
t=tk.Text()
t.pack()
p = Popen(["python","c:/runme.py"],stdout=PIPE,stdin=PIPE,stderr=PIPE,shell=True)
p.stdin.write("5".encode())
out=p.stdout.read()
t.insert(1.0,out)
そして、ここでは、私はと対話しようとしているテストスクリプトです:
print("Hello World")
inp=input("Enter a Number: ")
print(inp)
quit()
残念ながらそれだけで、おそらく(待機中)を参照してください。すでに印刷されているものをどのように読み、文字列を入力するのですか?
import sys
print("Hello World")
print("Enter a Number: ")
stdout.flush()
inp = input()
print(inp)
、あなたがリターン\n
で入力を終了する必要があります:スクリプトは、端末に接続されていない場合は、出力が自動的にフラッシュされていないため、
'stdout'は' sys'モジュールにあり、 'p.stdin'も' write() 'のあとにフラッシュする必要があります。私の答えの他のすべての部分はあなたのものと同じです:) – Cychih