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

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

不言
不言転載
2018-10-26 17:10:274088ブラウズ

この記事では、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 までご連絡ください。