0

私は現在、wxPython を使用して GUI を作成し、ユーザーがいくつかのフィールドに入力できるようにし、他の場所で .bat ファイルを実行してそれらのパラメーターを送信する Python ファイルを作成しました。.bat ファイルはコマンド プロンプトに多くの出力を出力します。それを GUI のテキスト ボックスにリダイレクトするか、GUI に新しいコマンド プロンプトを表示させて .bat ファイルを実行させたいと考えています。スタンドアロンの .exe ファイルにするつもりでこれを書いているので、どのオプションが優れているか、どのように実装できますか?

編集:特に新しいクラスを作成することにより、Pythonファイル自体から出力をリダイレクトできました:

class RedirectText(object):
    def __init__(self,aWxTextCtrl):
        self.out=aWxTextCtrl
    def write(self,string):
        self.out.WriteText(string)

ただし、subprocess.Popen を使用して実行している .bat ファイルからの出力は処理されません。

4

2 に答える 2

1

subprocess と wx を使用して何かを作成し、そこで ping、traceroute などをいくつか実行し、それらの出力をテキスト コントロールにリダイレクトしました。少しトリッキーですが、それほど悪くはありません。私はそれについてブログにチュートリアルを書きました:

あなた自身のようなリダイレクト機能を使用しています。リダイレクトを設定したら、次のようにします。

#----------------------------------------------------------------------   
def pingIP(self, ip):
    proc = subprocess.Popen("ping %s" % ip, shell=True, 
                            stdout=subprocess.PIPE) 
    print
    while True:
        line = proc.stdout.readline()                        
        wx.Yield()
        if line.strip() == "":
            pass
        else:
            print line.strip()
        if not line: break
    proc.wait()
于 2013-06-17T18:27:32.970 に答える