検索
ホームページバックエンド開発Python チュートリアルPython 2.x でサブプロセス管理にサブプロセス モジュールを使用する方法
Python 2.x でサブプロセス管理にサブプロセス モジュールを使用する方法Jul 30, 2023 am 10:07 AM
python xサブプロセスモジュールサブプロセス管理

Python 2 でサブプロセス管理にサブプロセス モジュールを使用する方法。xx

概要:
Python 開発では、プログラム内で他の外部コマンドやプログラムを呼び出す必要がある場合があります。サブプロセス モジュールは、Python によって提供される標準ライブラリであり、サブプロセスを簡単に作成して通信することができます。この記事では、サブプロセス管理にサブプロセス モジュールを使用する方法を紹介し、コード例を示して説明します。

  1. サブプロセスの作成:
    サブプロセス モジュールで最も一般的に使用される関数は 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)

サブプロセスの入力と出力:
    サブプロセスを作成するとき、
  1. Popen()
    の stdin、stdout、および stderr パラメータを通じてサブプロセスを指定できます。関数の入力 出力。これらのパラメータが指定されていない場合、デフォルトで新しいパイプが作成され、Popen オブジェクトのプロパティを通じて読み書きされます。
  2. サンプルコード 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)

子プロセスの終了を待機しています:
    子プロセスの実行は非同期です。デフォルトでは、
  1. Popen()
    関数は Popen オブジェクトを返します子プロセスの実行が完了するまで待つのではなく、すぐに実行します。次のステップに進む前に、子プロセスの実行が完了するまで待つ必要がある場合は、Popen() オブジェクトの wait() メソッドを使用できます。
  2. サンプル コード 4: 子プロセスを開始し、その実行が完了するまで待ちます。
import subprocess

cmd = "ls -l"
p = subprocess.Popen(cmd, shell=True)
p.wait()
print("子进程执行完毕")

子プロセスの終了ステータス コードをキャプチャします。
    各子プロセスには、その実行結果を表す終了ステータス コードがあります。
  1. Popen()
    オブジェクトの returncode 属性を使用して、子プロセスの終了ステータス コードを取得できます。それが 0 の場合は、実行が成功したことを意味します。
  2. サンプル コード 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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
如何在Java 14中使用Pattern Matching进行类型模式匹配如何在Java 14中使用Pattern Matching进行类型模式匹配Jul 31, 2023 pm 12:01 PM

如何在Java14中使用PatternMatching进行类型模式匹配引言:Java14引入了一种新的特性,即PatternMatching,这是一种强大的工具,可用于在编译时进行类型模式匹配。本文将介绍如何在Java14中使用PatternMatching进行类型模式匹配,并提供代码示例。理解PatternMatching的概念Pattern

Python 2.x 中如何使用write()函数向文件写入内容Python 2.x 中如何使用write()函数向文件写入内容Jul 30, 2023 am 08:37 AM

Python2.x中如何使用write()函数向文件写入内容在Python2.x中,我们可以使用write()函数将内容写入文件中。write()函数是file对象的方法之一,可用于向文件中写入字符串或二进制数据。在本文中,我将详细介绍如何使用write()函数以及一些常见的使用案例。打开文件在使用write()函数写入文件之前,我

Python 2.x 中如何使用join()函数将字符串列表合并为一个字符串Python 2.x 中如何使用join()函数将字符串列表合并为一个字符串Jul 30, 2023 am 08:36 AM

Python2.x中如何使用join()函数将字符串列表合并为一个字符串在Python中,我们经常需要将多个字符串合并成一个字符串。Python提供了多种方式来实现这个目标,其中一种常用的方式是使用join()函数。join()函数可以将一个字符串列表拼接成一个字符串,并且可以指定拼接时的分隔符。使用join()函数的基本语法如下:&

Python 3.x 中如何使用os模块执行系统命令Python 3.x 中如何使用os模块执行系统命令Jul 31, 2023 pm 12:19 PM

Python3.x中如何使用os模块执行系统命令在Python3.x的标准库中,os模块提供了一系列方法,用于执行系统命令。在本文中,我们将学习如何使用os模块来执行系统命令,并给出相应的代码示例。Python中的os模块是与操作系统进行交互的一个接口。它提供了一些方法,例如执行系统命令、访问文件和目录等。下面是一些常用的os模块方法,可以在执行系统命

Python 2.x 中如何使用hashlib模块进行哈希算法计算Python 2.x 中如何使用hashlib模块进行哈希算法计算Jul 29, 2023 pm 05:16 PM

Python2.x中如何使用hashlib模块进行哈希算法计算在Python编程中,哈希算法是一种常用的算法,用于生成数据的唯一标识。Python提供了hashlib模块来进行哈希算法的计算。本文将介绍如何使用hashlib模块进行哈希算法计算,并给出一些示例代码。hashlib模块是Python标准库中的一部分,提供了多种常见的哈希算法,如MD5、SH

Python 2.x 中如何使用csv模块读取和写入CSV文件Python 2.x 中如何使用csv模块读取和写入CSV文件Jul 30, 2023 am 10:39 AM

Python2.x中如何使用csv模块读取和写入CSV文件导言:CSV(CommaSeparatedValues)是一种常见的文件格式,用于存储和交换数据。Python的csv模块提供了一种简单的方式来读取和写入CSV文件。本文将介绍如何使用csv模块在Python2.x中读取和写入CSV文件,并提供相应的代码示例。一、读取CSV文件要读取CSV文

Python 3.x 中如何使用traceback模块进行异常跟踪Python 3.x 中如何使用traceback模块进行异常跟踪Jul 30, 2023 am 08:00 AM

Python3.x中如何使用traceback模块进行异常跟踪引言:在编写和调试Python程序时,我们经常会遇到各种异常。异常是程序在运行过程中发生的错误,为了更好地定位和解决问题,我们需要了解异常发生的上下文信息。Python提供了traceback模块,它可以帮助我们获取异常的相关信息,并进行异常跟踪。本文将介绍如何在Python

Python 3.x 中如何使用glob模块进行文件模式匹配Python 3.x 中如何使用glob模块进行文件模式匹配Jul 30, 2023 pm 01:41 PM

Python3.x中如何使用glob模块进行文件模式匹配引言:在Python的文件处理中,经常需要对某个文件夹下的文件进行批量处理。我们如果需要对一个文件夹中的所有文件进行操作,就需要使用到文件模式匹配。Python提供了glob模块,可以很方便地处理这样的需求。本文将介绍glob模块的基本用法和常见操作。一、glob模块简介glob

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン