2009-05-15 12 views
1

アクティブでない単一のターミナル/ ttyウィンドウにいくつかのサブプロセス(時には連鎖していることもあります)の出力を[編集:リアルタイムテキスト] pythonシェル(IDE、コマンドライン、またはtkinterを使用している実行中のスクリプト) IPythonはオプションではありません。私は標準のインストールに付属するものが必要です。 OSに依存しない解決策を優先しますが、XP/Vistaで作業する必要があります。新しいターミナル/シェルウィンドウを作成して単純にテキストを表示する

私はあなたがそれを望むなら私がすでに試したことを投稿しますが、恥ずかしいです。

+0

おそらく、アイドル(エディタ)のようなものが必要なのでしょうか?ウィンドウを標準出力のように動作させますか? – tzot

+0

あなたはpythonスクリプトからプロセスを起動していますか、コマンドラインから起動していて、作業中のpythonスクリプトにすべての入力を集めたいのですか?より具体的な例を教えてください。 –

答えて

2

Unixの優れたソリューションは、名前付きパイプになります。私はあなたがWindowsについて尋ねたことは知っていますが、Windowsでも同様のアプローチがあるかもしれませんが、これは他の人にとって役に立ちます。端末1に

mkfifo /tmp/display_data 
myapp >> /tmp/display_data 

端末2上の(バッシュ):

tail -f /tmp/display_data 

編集代わりに無限ループの "-f尾" を使用する端末2のコマンドを変更しました。

+0

http://en.wikipedia.org/wiki/Tail_(Unix)#File_monitoring –

+0

@alexヒントをありがとう、私は私の例を更新しました。 –

0

「パイプ」と言うので、サブプロセスからのテキスト出力を処理しているとします。単純な解決策は、単に出力をファイルに書き込むことです。

サブプロセスに:

  1. 終了時に出力%TEMP%\output.txt
  2. をリダイレクトし、あなたの主なプロセスが見ているディレクトリにoutput.txtをコピーします。メインプロセスで

  1. 毎秒、新しいファイル用のディレクトリを調べます。
  2. ファイルが見つかったら、それらを処理して削除します。

出力ファイル名にサブプロセス名をエンコードして、処理方法を知ることができます。

+0

私は、プロセスごとにリアルタイムで標準出力をパイプに入れることを計画していることを述べておきます。ファイル解決は実行可能ですが、ユーザーは30〜60時間の応答時間に慣れています。私はHDDがそれを扱うことができると確信していますが、それは不要です。また、ファイルやパイプ出力からの出力テキスト(現在のIDE/script-stdoutとは別のもの)だけを表示するシェルのようなウィンドウを生成する方法はまだ不明です。 – Paul

0

プロデューサーと顧客のシステムを作ることができます。ここでは、ラインがソケットに挿入されます(ここでは何も表示されません)。 顧客は接続を聞いてすべての行をQueueに入れているマルチスレッドソケットサーバーになります。別のスレッドでは、キューからアイテムを取得してコンソールに出力します。このプログラムは、cmdコンソールまたはEclipseツールから外部ツールとして実行できます。

あなたの視点からは、リアルタイムである必要があります。ボーナスとして、プロデューサーと顧客を別々の箱に置くことができます。生産者はネットワークを形成することさえできます。

Pythonでのソケットプログラミングの例は、hereです。 tcp echoserverの例ではhere、tcp "hello world"ソケットクライアントではhereとなります。

名前付きパイプの使用を可能にするウィンドウの拡張もあります。

Linuxの場合(おそらくcygwin?)tail -f named-fifoです。

幸運を祈る!

+0

+1:これは私が必要とするものと非常によく似ています。私は最終的にこれらのプロセスを将来ネットワーク上で配布するかもしれません。 -1:参照/例はありません。 (Googleの "プロデューサー/顧客システムソケット"はプロテーゼ製造ソリューションへのリンクを返しています...そのバリエーションはあまり効果的ではありません) ありがとうございました! – Paul

+0

これは 'google python socket'でした。最初の結果が表示され、次に「examples」セクションまでスクロールします。それは私には明らかだった、それについて残念。私はあなたに役立つかもしれない例へのリンクをいくつか追加しました。 –

+0

検索の結果: 1番目: http://code.google.com/p/couchdb-python/issues/detail?id=68 2番目: http://groups.google.com/group/project -voldemort/browse_thread/thread/2fc477c4c1e3fee9 第3回: http://pleac.sourceforge.net/pleac_python/sockets.html あなたが参照しているのは3番目ですか?それは最も有用なようですが、どれも「例」セクションを持っていません。あなたが探しているものを完全に理解していないときは、それを見つけたときは明白ではなく、特に高品質のソースを見つけたかどうかを判断するのは難しいです。 – Paul

関連する問題