問題タブ [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 投票する
7 に答える
186603 参照

python - Pythonスクリプトでシェルコマンドを起動し、終了を待ってスクリプトに戻る

ディレクトリ内のすべてのファイルに対してシェルコマンドを起動する必要があるpythonスクリプトがあります:

これは最初のファイルに対しては正常に機能しますが、「myscript」コマンドが終了した後、実行が停止し、python スクリプトに戻りません。

どのようにできるのか?fork()前にする必要がありcalling os.execlp()ますか?

0 投票する
7 に答える
46261 参照

python - Python、Popen、select-プロセスの終了またはタイムアウトを待機中

私は以下を使用してサブプロセスを実行します:

このサブプロセスは、stderrでエラーが発生してすぐに終了するか、実行を継続する可能性があります。これらの状態のいずれかを検出したい-後者は数秒待つことによって。

私はこれを試しました:

しかし、それはただ戻ります:

どちらの条件でも。私に何ができる?

0 投票する
3 に答える
6136 参照

python - pythonw.exeを使用すると、Python subprocess.call()が失敗する

python.exeを使用して実行すると正しく機能するPythonコードがいくつかありますが、pythonw.exeを使用すると失敗します。

私が受け取るメッセージは次のとおりです。

ただし、「stdout」パラメーターを指定しない場合、subprocess.call()は正常に起動します。

pythonw.exeが出力自体をリダイレクトしている可能性があることはわかりますが、新しいスレッドにstdoutを指定できない理由がわかりません。

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

python - Pythonでコマンドを順番に実行しますか?

複数のコマンドを連続して実行したい:

すなわち(私の必要性を説明するためだけに):

cmd(シェル)

それから

cd dir

ls

の結果を読み取りますls

subprocessモジュールのアイデアはありますか?

アップデート:

cd dirlsはほんの一例です。複雑なコマンドを実行する必要があります (特定の順序に従い、パイプライン処理は一切行いません)。実際、1 つのサブプロセス シェルと、その上で多くのコマンドを起動できる機能が必要です。

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

python - PythonサブプロセスがWindowsでfdsを渡さないようにしますか?

Pythonのサブプロセスモジュールは、デフォルトで、開いているすべてのファイル記述子を、生成する子プロセスに渡します。これは、親プロセスがポートでリッスンしていて強制終了された場合、子がまだその記述子を所有しているため、再起動してリッスンを再開できないことを意味します(SO_REUSEADDRを使用している場合でも)。私は子プロセスを制御できません。

サブプロセスのPOpenコンストラクターはclose_fds引数を受け入れます。これにより、必要に応じて、子の記述子が閉じられます。ただし、Windowsでのみ、stdin / stdoutもオーバーライドされた場合に使用できないという制限があります。これは、私が行う必要があります。

Windowsでのこの回避策を知っている人はいますか?

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

python - subprocess モジュールを使用してプロセスと適切に対話する方法

subprocess モジュールを使用して別のプログラムの stdio をリダイレクトする際に問題があります。stdout から読み取るだけでハングし、Popen.communicate() は機能しますが、読み取り/書き込み後にパイプを閉じます。これを実装する最も簡単な方法は何ですか?

私はWindowsでこれをいじっていました:

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

python - ブロックせずにコンソール入力を期待するサブプロセスを生成しますか?

cvs.exeプロセスを呼び出してPythonからCVSログインを実行しようとしています。cvs.exeを手動で呼び出すと、コンソールにメッセージが出力され、ユーザーがパスワードを入力するのを待ちます。

subprocess.Popenで呼び出すと、呼び出しがブロックされることに気づきました。コードは

入力を待っているためにブロックされると思いますが、Popenを呼び出すとすぐに戻り、subprocess.communicate()を呼び出して実際のパスワードを入力できると期待していました。この動作を実現し、Popenでのブロックを回避するにはどうすればよいですか?

OS:Windows XP
Python:2.6
cvs.exe:1.11

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

python - subprocess.Popen エラー

サイレント モードで msi インストーラーを実行し、特定のファイルにログをキャッシュしています。以下は、実行する必要があるコマンドです。

C:\Program Files\ My Installer\Setup.exe /s /v "/qn /lv %TEMP%\log_silent.log"

私が使用した:

コマンドを実行しても、操作が認識されず、間違ったオプションが選択されているというエラーが表示されます。相互検証したところ、コマンドはこの方法でのみ機能することがわかりました。

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

python - 実行中のサブプロセスの stdout のインターセプト

これが私のサブプロセスの場合:

そして、これはサブプロセスの出力を制御および変更するスクリプトです。

プロセスが実行されるまで待っているのreadlineはなぜですか? communicateサブプロセスの stdout をリアルタイムで渡す (および変更する) 簡単な方法はありますか?

私はWindows XPを使用しています。