問題タブ [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.
python - Pythonスクリプトでシェルコマンドを起動し、終了を待ってスクリプトに戻る
ディレクトリ内のすべてのファイルに対してシェルコマンドを起動する必要があるpythonスクリプトがあります:
これは最初のファイルに対しては正常に機能しますが、「myscript」コマンドが終了した後、実行が停止し、python スクリプトに戻りません。
どのようにできるのか?fork()
前にする必要がありcalling os.execlp()
ますか?
python - Python、Popen、select-プロセスの終了またはタイムアウトを待機中
私は以下を使用してサブプロセスを実行します:
このサブプロセスは、stderrでエラーが発生してすぐに終了するか、実行を継続する可能性があります。これらの状態のいずれかを検出したい-後者は数秒待つことによって。
私はこれを試しました:
しかし、それはただ戻ります:
どちらの条件でも。私に何ができる?
python - pythonw.exeを使用すると、Python subprocess.call()が失敗する
python.exeを使用して実行すると正しく機能するPythonコードがいくつかありますが、pythonw.exeを使用すると失敗します。
私が受け取るメッセージは次のとおりです。
ただし、「stdout」パラメーターを指定しない場合、subprocess.call()は正常に起動します。
pythonw.exeが出力自体をリダイレクトしている可能性があることはわかりますが、新しいスレッドにstdoutを指定できない理由がわかりません。
python - Pythonでコマンドを順番に実行しますか?
複数のコマンドを連続して実行したい:
すなわち(私の必要性を説明するためだけに):
cmd
(シェル)
それから
cd dir
と
ls
の結果を読み取りますls
。
subprocess
モジュールのアイデアはありますか?
アップデート:
cd dir
とls
はほんの一例です。複雑なコマンドを実行する必要があります (特定の順序に従い、パイプライン処理は一切行いません)。実際、1 つのサブプロセス シェルと、その上で多くのコマンドを起動できる機能が必要です。
python - PythonサブプロセスがWindowsでfdsを渡さないようにしますか?
Pythonのサブプロセスモジュールは、デフォルトで、開いているすべてのファイル記述子を、生成する子プロセスに渡します。これは、親プロセスがポートでリッスンしていて強制終了された場合、子がまだその記述子を所有しているため、再起動してリッスンを再開できないことを意味します(SO_REUSEADDRを使用している場合でも)。私は子プロセスを制御できません。
サブプロセスのPOpenコンストラクターはclose_fds引数を受け入れます。これにより、必要に応じて、子の記述子が閉じられます。ただし、Windowsでのみ、stdin / stdoutもオーバーライドされた場合に使用できないという制限があります。これは、私が行う必要があります。
Windowsでのこの回避策を知っている人はいますか?
python - subprocess モジュールを使用してプロセスと適切に対話する方法
subprocess モジュールを使用して別のプログラムの stdio をリダイレクトする際に問題があります。stdout から読み取るだけでハングし、Popen.communicate() は機能しますが、読み取り/書き込み後にパイプを閉じます。これを実装する最も簡単な方法は何ですか?
私はWindowsでこれをいじっていました:
python - ブロックせずにコンソール入力を期待するサブプロセスを生成しますか?
cvs.exeプロセスを呼び出してPythonからCVSログインを実行しようとしています。cvs.exeを手動で呼び出すと、コンソールにメッセージが出力され、ユーザーがパスワードを入力するのを待ちます。
subprocess.Popenで呼び出すと、呼び出しがブロックされることに気づきました。コードは
入力を待っているためにブロックされると思いますが、Popenを呼び出すとすぐに戻り、subprocess.communicate()を呼び出して実際のパスワードを入力できると期待していました。この動作を実現し、Popenでのブロックを回避するにはどうすればよいですか?
OS:Windows XP
Python:2.6
cvs.exe:1.11
python - subprocess.Popen エラー
サイレント モードで msi インストーラーを実行し、特定のファイルにログをキャッシュしています。以下は、実行する必要があるコマンドです。
C:\Program Files\ My Installer\Setup.exe /s /v "/qn /lv %TEMP%\log_silent.log"
私が使用した:
コマンドを実行しても、操作が認識されず、間違ったオプションが選択されているというエラーが表示されます。相互検証したところ、コマンドはこの方法でのみ機能することがわかりました。
python - 実行中のサブプロセスの stdout のインターセプト
これが私のサブプロセスの場合:
そして、これはサブプロセスの出力を制御および変更するスクリプトです。
プロセスが実行されるまで待っているのreadline
はなぜですか? communicate
サブプロセスの stdout をリアルタイムで渡す (および変更する) 簡単な方法はありますか?
私はWindows XPを使用しています。