この記事では、Python のサブプロセス クラスと定数について詳しく説明します。一定の参考値があります。必要な友人は参照してください。お役に立てれば幸いです。
Constant
subprocess.DEVNULL: stdin、stdout、stderr パラメータに渡すことができる特別な値。これは、特別なファイル os.devnull が入出力のリダイレクトに使用されることを意味します。
subprocess .PIPE: stdin、stdout、stderr パラメーターに渡すことができる特別な値。これは、パイプを使用して入力と出力をリダイレクトすることを意味します。
subprocess.STDOUT: 使用できる特別な値。これは、標準エラーを標準出力にリダイレクトすることを意味します。
Popen
サブルーチンを新しいプロセスで実行します。
構築パラメータ
(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=True, シェル=False、cwd=None、env=None、universal_newlines=None、startupinfo=None、creationflags=0、restore_signals=True、start_new_session=False、pass_fds=()、*、encoding=None、errors=None、text=None)
args: 文字列またはシーケンス。シーケンスの場合、args の最初の要素は実行されるプログラムです。文字列の場合、解釈はプラットフォームに依存します。POSIX システムでは、args は実行されるプログラムの名前またはパスとして解釈されます。 (プログラムにパラメータが渡されない場合に限ります)。
shell: 実行するプログラムとしてシェルを使用するかどうかを指定します。 True に設定した場合は、文字列型の args パラメータを使用することをお勧めします。
POSIX システムでは、shell=True はデフォルトで /bin/sh
をシェルとして使用します。 args が文字列の場合、その文字列はシェルを通じて実行されるコマンドを表します。args がシーケンスの場合、最初の要素は実行されるプログラムを指定し、他の要素はパラメータとして扱われます。
Windows システムでは、shell=True のデフォルトは、COMSPEC
環境変数で指定されたシェル (通常は C:\WINDOWS\system32\cmd.exe
) です。 shell=True を指定する必要がある唯一のシナリオは、実行する命令が dir
、copy
などの組み込みシェルである場合です。
bufsize: stdin/stdout/stderr パイプ ファイル オブジェクトを作成するときは、それを対応するパラメーターとして open()
関数に渡します。
0: バッファリングを使用しない
1: 行バッファリングを使用する
その他の正の整数: バッファ サイズ
負の整数 (デフォルト): システムのデフォルト値を使用する
実行可能ファイル: shell=True が使用されるシナリオはほとんどありません。 POSIX システムで shell=True の場合、このパラメータは、デフォルトのshell/bin/sh
を置き換える新しいシェル プログラムを指定することを示します。
stdin/stdout/stderr: プログラム実行時の標準入力、標準出力、標準エラーをそれぞれ指定します。オプションの値には、PIPE
、DEVNULL
、既存のファイル記述子 (正の整数)、既存のファイル オブジェクト、None が含まれます。子プロセスのファイル ハンドルは親プロセスから継承されます。さらに、stderr を STDOUT
にすることもでき、これは標準エラー出力が標準出力にリダイレクトされることを示します。
preexec_fn: POSIX システムに限定され、子プロセス内のプログラムの前に実行する呼び出し可能オブジェクトを設定します。
close_fds: False の場合、ファイル記述子は、「ファイル記述子の継承」で説明されている inheritable
識別に従います。
True の場合、POSIX システムでは、0、1、2 以外のファイル記述子は子プロセスが実行される前に閉じられます。
pass_fds: POSIX のみ。親プロセスと子プロセスの間でオープンを維持するために使用されるファイル記述子のオプションのシーケンス。このパラメータが指定されると、close_fds は強制的に True に設定されます。
cwd: 子プロセスが実行される前に、作業ディレクトリを cwd に変更します。これは文字列またはパスのようなオブジェクトにすることができます。
restore_signals: POSIX に限定、省略
start_new_session: POSIX に限定、省略
env: 新しいプロセスの環境変数を定義する dict オブジェクト。親プロセスから継承された変数を置き換えます。 Windows で side-by-side アセンブリ
を実行するには、使用可能な環境変数 SystemRoot
を含める必要があります。 env が指定されている場合は、プログラムの実行が依存するすべての環境変数を指定する必要があります。
encoding/errors/text/universal_newlines: stdin/stdout/stderr のデフォルトは次のとおりです。バイナリモードが開きます。ただし、encoding/errors が指定されている場合、または text が True の場合、stdin/stdout/stderr は、指定されたエンコーディングとエラーを使用してテキスト モードで開かれます。 universal_newlines パラメータは、下位互換性のためのテキストと同等です。
startupinfo: Windows のみ、省略
creationflags: Windows のみ、省略
Method
poll(): 子プロセスが終了したかどうかを確認します。終了していないことを示すには None を返し、それ以外の場合は returncode 属性を設定して戻ります。
wait(timeout=None): タイムアウト後に子プロセスが終了しない場合、TimeoutExpired 例外がスローされます。それ以外の場合は、returncode 属性を設定して戻ります。
communicate(input=None, timeout=None): プロセス対話: データを標準入力に送信し、終了文字が読み取られるまで標準出力または標準エラー出力のデータを読み取ります。 (stdout_data, stderr_data) の形式でタプルを返します。タプルのタイプは文字列またはバイトです。
Input は None、または子プロセスに送信されるデータです。これは、ストリーム開始モードに応じて文字列型またはバイト型になります。
プロセスの stdin を操作したい場合は、Popen オブジェクトの作成時に stdin=PIPE を指定する必要があります。同様に、返されるタプルを None 以外にしたい場合は、stdout=PIPE および/または stderr=PIPE を設定する必要があります。
タイムアウト後に子プロセスが終了しない場合、TimeoutExpired 例外がスローされますが、子プロセスは強制終了されません。適切なアプリケーションでは、子プロセスを強制終了して対話を終了する必要があります:
proc = subprocess.Popen(...) try: outs, errs = proc.communicate(timeout=15) except TimeoutExpired: proc.kill() outs, errs = proc.communicate()
send_signal( signal): 子プロセスにシグナルを送信します。
terminate(): 子プロセスを終了します。 POSIX システムでは、SIGTERM シグナルを子プロセスに送信します。Windows システムでは、TerminateProcess() が呼び出されてプロセスを終了します。
kill(): 子プロセスを強制的に終了します。 POSIX システムでは、SIGKILL シグナルを子プロセスに送信します。 Kill() は、Windows システム上の terminate() のエイリアスです。
Attributes
args: Popen
コンストラクターの最初のパラメーターに渡します。リストまたは文字列型
stdin: Popen に渡される stdin パラメータが PIPE の場合、この属性は文字列またはバイト型の書き込み可能なストリーム オブジェクトを表します。 Popen に渡される stdin パラメータが PIPE でない場合、この属性の値は None
stdout: Popen.stdin と似ていますが、ストリーム オブジェクトは読み取り可能です
stderr: Popen.stdout に似ています
pid: 子プロセスのプロセス ID。 shell=True が設定されている場合、pid は派生シェルのプロセス番号を示します。
#returncode: 子プロセスの戻りコード。None はプロセスが終了していないことを示します。負の数 -N は、プロセスがシグナル N によって終了されたことを意味します (POSIX のみ)。
CompletedProcess
run()
関数操作の戻り値は、プロセスの実行が完了したことを示します。
Attributes
args: run()
関数の最初のパラメータ、リストまたは文字列タイプを渡します
returncode: 子プロセスの終了コード。負の数の場合は、特定のシグナルによりプロセスが終了したことを意味します。
stdout: キャプチャされた子プロセスの標準出力。デフォルトはバイト型です。 ##run() 関数が呼び出されます。 エンコーディングまたはエラーが指定されている場合、または text=True が設定されている場合、文字列型になります。標準出力がキャプチャされなかった場合は、None が返されます。
stderr: キャプチャされた子プロセスの標準エラー。 でエンコーディングが指定されている場合、デフォルトはバイト型です。 run() 関数が呼び出される。エラーが発生するか、text=True が設定されている場合は文字列型になります。標準エラーがキャッチされない場合は、None が返されます。サブプロセスの実行タイムアウト。
cmd: コマンドtimeout:
出力:
run()
またはcheck_output()
関数によって取得された子プロセスの出力、それ以外の場合は Nonestdout:出力属性別名
stderr:
run() 関数によってキャプチャされたサブプロセスのエラー出力、それ以外の場合は None
subprocess.CalledProcessError check_call() または
check_output() 関数が 0 以外のステータス コードを返した場合にスローされます。
戻りコード:
子プロセスの終了コード。負の数値の場合は、プロセスがシグナルにより終了したことを意味します。cmd: TimeoutExpired と同じ
output:
同じTimeoutExpiredstdout:
TimeoutExpired と同じ
stderr:TimeoutExpired と同じ
この記事はここで終了です。エキサイティングなコンテンツについては、中国語 Web サイトの PHP Python ビデオ チュートリアル
列を参照してください。以上がPython のサブプロセス クラスと定数の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

PythonまたはCの選択は、プロジェクトの要件に依存します。1)迅速な開発、データ処理、およびプロトタイプ設計が必要な場合は、Pythonを選択します。 2)高性能、低レイテンシ、および緊密なハードウェアコントロールが必要な場合は、Cを選択します。

毎日2時間のPython学習を投資することで、プログラミングスキルを効果的に改善できます。 1.新しい知識を学ぶ:ドキュメントを読むか、チュートリアルを見る。 2。練習:コードと完全な演習を書きます。 3。レビュー:学んだコンテンツを統合します。 4。プロジェクトの実践:実際のプロジェクトで学んだことを適用します。このような構造化された学習計画は、Pythonを体系的にマスターし、キャリア目標を達成するのに役立ちます。

2時間以内にPythonを効率的に学習する方法は次のとおりです。1。基本的な知識を確認し、Pythonのインストールと基本的な構文に精通していることを確認します。 2。変数、リスト、関数など、Pythonのコア概念を理解します。 3.例を使用して、基本的および高度な使用をマスターします。 4.一般的なエラーとデバッグテクニックを学習します。 5.リストの概念を使用したり、PEP8スタイルガイドに従ったりするなど、パフォーマンスの最適化とベストプラクティスを適用します。

Pythonは初心者やデータサイエンスに適しており、Cはシステムプログラミングとゲーム開発に適しています。 1. Pythonはシンプルで使いやすく、データサイエンスやWeb開発に適しています。 2.Cは、ゲーム開発とシステムプログラミングに適した、高性能と制御を提供します。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Pythonはデータサイエンスと迅速な発展により適していますが、Cは高性能およびシステムプログラミングにより適しています。 1. Python構文は簡潔で学習しやすく、データ処理と科学的コンピューティングに適しています。 2.Cには複雑な構文がありますが、優れたパフォーマンスがあり、ゲーム開発とシステムプログラミングでよく使用されます。

Pythonを学ぶために1日2時間投資することは可能です。 1.新しい知識を学ぶ:リストや辞書など、1時間で新しい概念を学びます。 2。練習と練習:1時間を使用して、小さなプログラムを書くなどのプログラミング演習を実行します。合理的な計画と忍耐力を通じて、Pythonのコアコンセプトを短時間で習得できます。

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

WebStorm Mac版
便利なJavaScript開発ツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。
