ホームページ > バックエンド開発 > Python チュートリアル > Pythonのサブプロセスライブラリの使い方の紹介

Pythonのサブプロセスライブラリの使い方の紹介

不言
リリース: 2018-10-26 17:23:01
転載
4107 人が閲覧しました

この記事では、Python のサブプロセス ライブラリの使い方を紹介します。一定の参考価値があります。必要な友人は参照してください。お役に立てれば幸いです。

はじめに

subprocess モジュールを使用する目的は、os.system などの古いモジュールやメソッドを置き換えることです。

インポートモジュール

>>> import subprocess
ログイン後にコピー

コマンド実行call()

パラメータで指定されたコマンドを実行し、配列を次のように実行します。パラメータ Order。その機能は os.system(cmd) に似ています。

>>> subprocess.call(['ls','-l')
ログイン後にコピー

シェル パラメータのデフォルトは False です。
シェルが True に設定されている場合、文字列を直接渡すことができます:

>>> subprocess.call('ls -l',shell=True)
ログイン後にコピー

戻り結果を取得する check_output()

call() は返されません表示された結果 はい、check_ouput() を使用して返された結果を取得できます。

>>> result = subprocess.check_output(['ls','-l'],shell=True)
>>> result.decode('utf-8')
ログイン後にコピー

プロセスの作成と管理 Popen Class

os.popen の代わりに subprocess.popen 。 Popen クラスを作成して、プロセスを作成し、複雑な対話を実行できます。

待機しない子プロセスを作成する

import subprocess
child = subprocess.Popen(['ping','-c','4','www.baidu.com'])
print('Finished')
ログイン後にコピー

待機する子プロセスを追加する

import subprocess
child = subprocess.Popen(['ping','-c','4','www.baidu.com'])
child.wait()  # 等待子进程结束
print('Finished')
ログイン後にコピー

wait を追加した後( )、メイン プロセスは、次のステートメントを実行する前に、子プロセスが終了するのを待ちます。

サブプロセス テキスト フロー制御

標準出力リダイレクト:

import subprocess
child = subprocess.Popen(['ls','-l'],stdout=subprocess.PIPE)    #将标准输出定向输出到subprocess.PIPE
print(child.stdout.read())
ログイン後にコピー

標準入力を使用して操作:

import subprocess
child1 = subprocess.Popen(['cat','/etc/passwd'],stdout=subprocess.PIPE)
child2 = subprocess.Popen(['grep','root'],stdin=child1.stdout,stdout=subprocess.PIPE)
print child2.communicate()
ログイン後にコピー


以上がPythonのサブプロセスライブラリの使い方の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート