問題タブ [subprocess]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
72745 参照

python - スレッドからの Python Subprocess.Popen

スレッド内でサブプロセス モジュールと Popen を使用して「rsync」を起動しようとしています。rsync を呼び出した後、出力も読み取る必要があります。出力を読み取るために、communication メソッドを使用しています。スレッドを使用しない場合、コードは正常に実行されます。スレッドを使用すると、通信呼び出しでハングするようです。私が気付いたもう 1 つのことは、shell=False を設定すると、スレッドで実行しているときに通信から何も返されないことです。

0 投票する
4 に答える
18794 参照

python - 非表示ウィンドウを使用したクロスプラットフォーム サブプロセス

バックグラウンドでプロセスを開いて対話したいのですが、このプロセスは Linux と Windows の両方で非表示にする必要があります。Windows では、STARTUPINFO を使用していくつかのことを行う必要がありますが、これは Linux では有効ではありません。

ValueError: startupinfo は Windows プラットフォームでのみサポートされています

OSごとに個別のPopenコマンドを作成するより簡単な方法はありますか?

0 投票する
2 に答える
12251 参照

python - Python-サブプロセス-Windowsでパイプコマンドを呼び出す方法は?

このコマンドをサブプロセスで実行するにはどうすればよいですか?

私は試した:

しかし得た:

私が気づいたこと:

  1. Windowsコンソールでコマンドを実行すると正常に機能します。
  2. ECHOボスコを外せば| 部分的には、上記のpopen呼び出しで正常に実行されます。したがって、この問題はエコーまたは|に関連していると思います。
0 投票する
2 に答える
816 参照

python - サブプロセスモジュール:tempfileオブジェクトでcallメソッドを使用する

一時ファイルライブラリのNamedTemporaryFileメソッドを使用して、一時的な名前付きファイルを作成しました。私はそれらにバッファをフラッシュするように書き込みました、そして私はそれらを閉じていません(さもなければそれらはなくなるかもしれません)

subprocessモジュールを使用して、これらの生成されたファイルを使用していくつかのシェルコマンドを呼び出そうとしています。

subprocess.call('cat %s' % f.name)指定された一時ファイルが存在しないと常に失敗します。

os.path.exists(f.name)常にtrueを返します。シェルから直接ファイルに対してcatコマンドを実行できます。

subprocessモジュールが一時ファイルで動作しない理由はありますか?

それを機能させる方法はありますか?

前もって感謝します。

0 投票する
5 に答える
2775 参照

python - 「Debug | Win32」を構成してDevenvを実行するPythonスクリプトを作成すると、何もしません

更新:subprocess.callの代わりにを使用するsubprocess.Popenと、問題は解決されます。原因を知っている人はいますか? そして、別の問題が発生しました:出力を制御する方法が見つからないようです...出力をsubprocess.call文字列などにリダイレクトする方法はありますか? ありがとう!

プロジェクトのビルドに使用しようとしてDevenvいますが、コマンド プロンプトに次のように入力すると問題なく動作しますdevenv A.sln /build "Debug|Win32"が、python を使用して上記と同じ行のPopen(cmd,shell=true)whereを使用して実行すると、何も表示されません。cmdを削除し|てのみに変更すると"Debug"、機能します....

なぜこれが起こるのか誰か知っていますか?\前にを入れてみました|が、まだ何も起こりません..

これは私が使用しているコードです:

...これは機能しませんが、 と交換Debug|Win32するとDebug、完全に機能します..

ここにコメントをありがとう

0 投票する
4 に答える
21423 参照

python - Python 2.5 では、サブプロセスを強制終了するにはどうすればよいですか?

Python で subprocess パッケージを使用してサブプロセスを実行していますが、後でこれを強制終了する必要があります。ただし、subprocess パッケージのドキュメントには、terminate() 関数は 2.6 以降でのみ使用できると記載されています。

Linux 2.5 を実行していますが、下位互換性のために 2.6 にアップグレードできません。代替手段は何ですか? これらの関数は、何かの便利なメソッドであると推測しています。

0 投票する
1 に答える
1691 参照

ruby - ルビーのバッククォートを使用して開始されたサブプロセスの連続出力を取得する方法

バッククォートを使用してantをサブプロセスとして実行するrubyアプリケーションがあります。これは問題なく動作します。putsを実行するとant、rubyはサブプロセスantが完全に終了するのを待ってから、出力をstdoutに出力します。サブプロセスからの出力を継続的に印刷するためにrubyを取得するにはどうすればよいですか?

0 投票する
2 に答える
6448 参照

python - Pythonを使用したSTDIN/STDOUTを介した外部プロセスの開始と制御

stdinとstdoutを介して送受信されるメッセージを介して制御される外部プロセスを起動する必要があります。subprocess.Popenを使用してプロセスを開始することはできますが、必要に応じてstdinを介して実行を制御することはできません。

私が完了しようとしていることの流れは次のとおりです。

  1. 外部プロセスを開始します
  2. いくつかのステップを繰り返します
    1. stdinに改行文字を書き込んで、次の処理ステップを完了するように外部プロセスに指示します
    2. stdoutに改行文字を書き込んで、外部プロセスがステップの完了を通知するのを待ちます
  3. 外部プロセスのstdinを閉じて、実行が完了したことを外部プロセスに示します。

私はこれまでに次のことを思いついた:

上記のコードを実行すると、「\ n」は外部プロセスに伝達されず、ステップ#0を超えることはありません。コードはprocess.communicate()でブロックされ、それ以上先に進みません。通信()メソッドを間違って使用していますか?

また、「外部プロセスが新しい行を書き込むまで待機する」機能をどのように実装しますか?

0 投票する
2 に答える
2010 参照

php - PHPからプロセスを実行するにはどうすればよいですか

Web経由でPHPページを呼び出してUnixプロセスを開始する必要があります。また、保存方法でコマンドに置き換えられるPHPページにいくつかの引数を送信する必要があります。