問題タブ [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 に答える
14905 参照

python - サブプロセスから環境を取得するには?

Python プログラムを介してプロセスを呼び出したいのですが、このプロセスには、別のプロセスによって設定された特定の環境変数が必要です。最初のプロセス環境変数を取得して 2 番目に渡すにはどうすればよいですか?

プログラムは次のようになります。

ただし、 to プロセスは同じ環境を共有していません。これらのプログラムは私のものではないことに注意してください (最初のファイルは大きくて醜い .bat ファイルで、2 番目のファイルは独自のソフトです) ので、変更することはできません (わかりました。.bat から必要なものをすべて抽出することはできますが、非常に面倒です)。 )。

注意: 私は Windows を使用していますが、クロスプラットフォーム ソリューションを好みます (ただし、Unix ライクでは問題は発生しません ...)

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

ruby - 現在の標準出力を見つけるか、出力をコンソールにリダイレクトする方法

私はUbuntu 9.04 x64を使用しています。

私はsudo bashを呼び出すファイルstartup.rbを持っているので、15分ごとにパスワードを入力せずに管理タスクを実行するためのルートコンソールが常にあります。

このスクリプトは別のスクリプトStartup.rbによって呼び出され、両方のファイルの内容は次のようになります -

ファイル~/Startup.rb

ファイル~/startup.rb

~/Startup.rbファイルをスタートアップ アプリケーションリストに含めました。

ここでの問題は、のターミナルでsudo bash、何かを入力して何らかの出力を期待しても、何も得られないことです。だから私が書くecho hello worldと、私は何の出力も得られません。sudo bashこれにより、コマンドの標準出力 (stdout) はコンソールではないと思われます。

だから、なぜこれが起こっているのか知りたいですか?現在の stdout パスを知るにはどうすればよいですか? または、stdout を現在のコンソールに戻すにはどうすればよいですか?

- ありがとう

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

python - サブプロセス: Windows での子プロセスの削除

Windows では、subprocess.Popen.terminatewin32 のTerminalProcess. ただし、終了しようとしているプロセスの子プロセスがまだ実行されているという動作が見られます。何故ですか?プロセスによって開始されたすべての子プロセスが強制終了されるようにするにはどうすればよいですか?

0 投票する
6 に答える
6105 参照

python - python サブプロセス

私は通常、次のように Linux で Fortran ファイルを (手動で) 実行します。

  1. サーバーに接続する
  2. 特定のフォルダに移動
  3. ifort xxx.for -o xxx && ./xxx('xxx.for' は Fortran ファイル、'xxx' は Fortran 実行可能ファイル)

しかし、Python から fortran ファイル (xxx.for) を呼び出す必要があるため (私は初心者です)、subprocess次のコマンドを使用しました。

しかし、エラーが発生し、何が問題なのかわかりません。完全なコードは次のとおりです。

上記の 3 つの手順をすべて実行し、発生しているエラーを回避する Python プログラムを作成するにはどうすればよいですか?

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

python - サブプロセスからのコンソール出力を無効にします。PythonでPopen

私はWindows上でPython2.5を実行しており、コードのどこかにあります

pidでIEウィンドウを強制終了します。問題は、Popenで配管を設定しなくても、コンソールに出力が返されることです-成功:PID2068のプロセスが終了しました。subprocess.pyのCreateProcessにデバッグしましたが、そこから移動できません。

誰もがこれを無効にする方法を知っていますか?

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

python - shell=True を指定した subprocess.Popen() の動作が Linux と Windows で異なるのはなぜですか?

を使用subprocess.Popen(args, shell=True)して " " を実行するとgcc --version(例として)、Windows では次のようになります。

そのため、期待どおりにバージョンをうまく印刷しています。しかし、Linux では次のようになります。

gcc が--versionオプションを受け取っていないためです。

このドキュメントでは、Windows で args がどうなるかを正確に指定していませんが、Unix では、「args がシーケンスの場合、最初の項目はコマンド文字列を指定し、追加の項目は追加のシェル引数として扱われます。 ." Popen(arglist)IMHO Windows の方法の方が優れています。これにより、呼び出しを呼び出しと同じように扱うことができるからですPopen(arglist, shell=True)

ここで Windows と Linux の違いはなぜですか?

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

python - Python サブプロセス - stdout/err を 2 か所にリダイレクト

を使用して外部プロセスを呼び出す小さな python スクリプトがありますsubprocess。stdout と stderr をログ ファイルとターミナルの両方にリダイレクトしたいと考えています。

これはどのように行うことができますか?

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

python - Python サブプロセス モジュール: 子プロセスの stdout をループする

subprocess モジュールを使用して実行しているコマンドがいくつかあります。次に、出力の行をループしたいと思います。ドキュメントには、私がしていない data_stream.stdout.read を実行しないと書かれていますが、それを呼び出す何かを実行している可能性があります。次のように出力をループしています。

これにより、data_stream.stdout からの読み取りなどのデッドロックが発生する可能性がありますか?それとも、通信コードを使用するがそのすべての呼び出しを処理するように、この種のループ用に Popen モジュールが設定されていますか?

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

python - subprocess.callの出力をプログレスバーにパイプする

私はgrowisofsを使用して、Pythonアプリケーションを介してisoを書き込みます。2つの異なるファイルに2つのクラスがあります。GUI()(main.py)およびBoxblaze()(core.py)。GUI()はウィンドウを構築し、すべてのイベントなどを処理します。Boxblaze()には、GUI()が呼び出すすべてのメソッドがあります。

これで、ユーザーが書き込みに使用するデバイスと書き込み先のファイルを選択したら、次のコマンドを呼び出すメソッドを呼び出す必要があります。`

このコマンドは、次のような出力を提供するはずです。

このコマンドは、Boxblaze()のburn()というメソッドで実行されます。単純に次のようになります。

今私の質問は次のとおりです。

  1. 出力(括弧内のパーセンテージ)から進行状況を取得し、進行状況バーをその進行状況を「追跡」するように設定するにはどうすればよいですか?私のプログレスバーは、GUI()クラスで次のように呼び出されます。

    get = builder.get_object

    self.progress_window = get( "progressWindow")

    self.progressbar = get( "progressbar")

  2. GUIの応答性を維持するために、このコマンドを別のスレッドで実行する必要がありますか(プログレスバーを更新し、ユーザーが必要に応じて書き込みをキャンセルできるようにするため)?もしそうなら、どうすればそれを行うことができ、それでも進行状況を進行状況バーに渡すことができますか?


興味があれば、Launchpadで完全なコードを入手できます。バザーをインストールしている場合は、次を実行するだけです。

ああ、そしてあなたが不思議に思っているのであれば、このアプリケーションはLinuxでのみ動作することを意図しているので、クロスプラットフォームの互換性について心配する必要はありません。

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

linux - <()はBashで何をしますか?

superuser.comの投稿の回答では、次のことがわかります。

参加するために送信する前に、ファイルabcとbcdをソートします。これは、スタックオーバーフローにより適したプログラミングの問題につながります。

これはどのように作動しますか?この<()構成は正確には何ですか?それは何と呼ばれていますか?

(sort abc)がabcでsortを実行し、出力を返す正当な呼び出しである場合、なぜ必要なの<ですか?

つまり、次の2行は同等です

しかし

構文エラーです。手がかりを教えてください!