Python 2.x でサブプロセス管理にサブプロセス モジュールを使用する方法
Python 2 でサブプロセス管理にサブプロセス モジュールを使用する方法。xx
概要:
Python 開発では、プログラム内で他の外部コマンドやプログラムを呼び出す必要がある場合があります。サブプロセス モジュールは、Python によって提供される標準ライブラリであり、サブプロセスを簡単に作成して通信することができます。この記事では、サブプロセス管理にサブプロセス モジュールを使用する方法を紹介し、コード例を示して説明します。
- サブプロセスの作成:
サブプロセス モジュールで最も一般的に使用される関数はsubprocess.Popen()
で、新しいプロセスを開始して Popen オブジェクトを返すことができます。Popen()
関数を使用してサブプロセスを作成するための基本的な構文は次のとおりです。
import subprocess subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
パラメータの説明:
- args: 文字列またはシーケンス タイプ コマンド ライン パラメータ
- bufsize: 入力バッファと出力バッファのサイズを制御するパラメータ。0 はバッファリングなしを表し、1 はライン バッファリングを表し、その他の正の数値はバッファ サイズを表します。 executable: 実行可能ファイルへのパス、デフォルト システム PATH 環境変数の検索パスを使用します
- stdin: 子プロセスの標準入力ストリーム、デフォルトは PIPE、つまり stdin 属性を介した入力ですPopen オブジェクトの
- stdout: 子プロセス ストリームの標準出力。デフォルトは PIPE で、Popen オブジェクトの stdout 属性を通じて出力されます。
- stderr: 子プロセスの標準エラー ストリーム子プロセス。デフォルトは PIPE で、Popen オブジェクトの stderr 属性を通じて出力されます。
- preexec_fn : 子プロセスが開始される前に呼び出される実行可能オブジェクト
- close_fds: かどうか不要になったファイル記述子を閉じるには、デフォルトは False
- shell: シェルを介してコマンド解析を実行するかどうか、デフォルトは False
- cwd: 作業ディレクトリ、デフォルトは None
- env: 環境変数、デフォルトは None、つまり親プロセスの環境変数を使用します
- universal_newlines: 入出力の制御 テキスト モードに変換するかどうか、デフォルトは False
- startupinfo: 子プロセスの起動情報、デフォルトは Noneです。
- creationflags: 子プロセスの作成フラグ、デフォルトは 0 サンプルコード 1:サブプロセスを開始してコマンドを実行し、サブプロセスの出力を取得します。
import subprocess cmd = "ls -l" p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) output, _ = p.communicate() print(output)
- サブプロセスを作成するとき、
- Popen()
の stdin、stdout、および stderr パラメータを通じてサブプロセスを指定できます。関数の入力 出力。これらのパラメータが指定されていない場合、デフォルトで新しいパイプが作成され、Popen オブジェクトのプロパティを通じて読み書きされます。 サンプルコード 2: 子プロセスを起動し、パイプ経由で入出力を実行します。
import subprocess cmd = "grep -E 'a|b|c'" p = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE) input_data = "abcdefg hijklmnop qrstuvwxyz " output, _ = p.communicate(input_data) print(output)
サンプル コード 3: サブプロセスを開始し、出力をファイルにリダイレクトします。
import subprocess cmd = "grep -E 'a|b|c' input.txt > output.txt" subprocess.Popen(cmd, shell=True)
- 子プロセスの実行は非同期です。デフォルトでは、
- Popen()
関数は Popen オブジェクトを返します子プロセスの実行が完了するまで待つのではなく、すぐに実行します。次のステップに進む前に、子プロセスの実行が完了するまで待つ必要がある場合は、Popen()
オブジェクトのwait()
メソッドを使用できます。 サンプル コード 4: 子プロセスを開始し、その実行が完了するまで待ちます。
import subprocess cmd = "ls -l" p = subprocess.Popen(cmd, shell=True) p.wait() print("子进程执行完毕")
- 各子プロセスには、その実行結果を表す終了ステータス コードがあります。
- Popen()
オブジェクトのreturncode
属性を使用して、子プロセスの終了ステータス コードを取得できます。それが 0 の場合は、実行が成功したことを意味します。 サンプル コード 5: 子プロセスの終了ステータス コードを取得します。
import subprocess cmd = "ls -l" p = subprocess.Popen(cmd, shell=True) p.wait() if p.returncode == 0: print("子进程执行成功") else: print("子进程执行失败")
概要:
サブプロセス モジュールを使用すると、Python プログラムでサブプロセスを簡単に作成し、プロセスを管理できます。具体的な操作方法としては、子プロセスの作成、子プロセスの入出力の制御、子プロセスの終了待ち、子プロセスの終了ステータスコードの取得などが挙げられます。この知識を習得すると、サブプロセス管理に Python をより適切に活用し、プログラムの柔軟性と拡張性を向上させることができます。
上記は、Python 2.x でのサブプロセス管理のためのサブプロセス モジュールの使用に関する関連コンテンツです。お役に立てれば。
以上がPython 2.x でサブプロセス管理にサブプロセス モジュールを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









math モジュールを使用して Python 3.x で数学的演算を実行する方法 はじめに: Python プログラミングでは、数学的演算を実行することが一般的な要件です。数学演算の処理を容易にするために、Python は数学ライブラリを提供します。このライブラリには、数学計算および数学関数用の多くの関数と定数が含まれています。この記事では、math モジュールを使用して一般的な数学演算を実行する方法を紹介し、対応するコード例を示します。 1. 基本的な数学演算の加算は、math モジュールの関数 math.add() を使用して実行されます。

Python 3.x で urllib.parse.unquote() 関数を使用して URL をデコードする方法。Python の urllib ライブラリでは、urllib.parse モジュールは URL エンコードとデコードのための一連のツール関数を提供します。その中には urllib.parse.unquote があります。 () 関数を使用して URL をデコードできます。この記事ではurllib.parse.unの使い方を紹介します。

Python2.x で join() 関数を使用して文字列のリストを 1 つの文字列にマージする方法 Python では、複数の文字列を 1 つの文字列にマージする必要がよくあります。 Python では、この目標を達成するためのさまざまな方法が提供されています。一般的な方法の 1 つは、join() 関数を使用することです。 join() 関数は、文字列のリストを文字列に連結でき、連結時に区切り文字を指定できます。 join() 関数を使用するための基本的な構文は次のとおりです。

Java14 で型パターン マッチングに PatternMatching を使用する方法 はじめに: Java14 では、コンパイル時に型パターン マッチングに使用できる強力なツールである新機能 PatternMatching を導入しています。この記事では、Java14 で型パターン マッチングに PatternMatching を使用する方法とコード例を紹介します。パターンマッチングパターンの概念を理解する

Python3.x で os モジュールを使用してシステム コマンドを実行する方法 Python3.x の標準ライブラリでは、os モジュールはシステム コマンドを実行するための一連のメソッドを提供します。この記事では、os モジュールを使用してシステム コマンドを実行する方法と、対応するコード例を示します。 Python の os モジュールは、オペレーティング システムと対話するためのインターフェイスです。システムコマンドの実行、ファイルやディレクトリへのアクセスなどのメソッドを提供します。以下は、システム コマンドの実行に使用できる、一般的に使用される OS モジュール メソッドの一部です。

Python2.x で write() 関数を使用してコンテンツをファイルに書き込む方法 Python2.x では、write() 関数を使用してコンテンツをファイルに書き込むことができます。 write() 関数はファイル オブジェクトのメソッドの 1 つであり、文字列またはバイナリ データをファイルに書き込むために使用できます。この記事では、write() 関数の使い方と一般的な使用例を詳しく説明します。ファイルを開きます。 write() 関数を使用してファイルに書き込む前に、

urllib.quote() 関数を使用して Python 2.x で URL をエンコードする方法。URL には、文字、数字、特殊文字など、さまざまな文字が含まれています。 URL を送信して正しく解析するには、URL 内の特殊文字をエンコードする必要があります。 Python2.xではurllib.quote()関数を使ってURLをエンコードすることができるので、その使い方を詳しく紹介します。 URLlib.quote

Python 2.x でハッシュ アルゴリズム計算に hashlib モジュールを使用する方法: Python プログラミングでは、ハッシュ アルゴリズムは、データの一意の ID を生成するためによく使用されるアルゴリズムです。 Python は、ハッシュ アルゴリズムの計算を実行するための hashlib モジュールを提供します。この記事では、hashlib モジュールを使用してハッシュ アルゴリズムの計算を実行する方法といくつかのサンプル コードを紹介します。 hashlib モジュールは Python 標準ライブラリの一部であり、MD5、SH などのさまざまな一般的なハッシュ アルゴリズムを提供します。
