ホームページ > バックエンド開発 > Python チュートリアル > Python でシェル コマンドを実行し、その出力をキャプチャするにはどうすればよいですか?

Python でシェル コマンドを実行し、その出力をキャプチャするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-25 20:11:23
オリジナル
466 人が閲覧しました

How Can I Run Shell Commands and Capture Their Output in Python?

シェル コマンドの実行と出力のキャプチャ

シェル コマンドをプログラムで実行し、その出力を文字列としてキャプチャするタスクは、Python のサブプロセス モジュールを使用して実行できます。

check_output 関数 (Python 2.7 および上)

公式に保守されている Python バージョンでの最も簡単なアプローチには、 check_output 関数を利用します。

import subprocess

output = subprocess.check_output(['ls', '-l'])
print(output) # Output: b'total 0\n-rw-r--r--  1 memyself  staff  0 Mar 14 11:04 files\n'
ログイン後にコピー

run 関数 (Python 3.5 以降)

Python 3.5 では、 run 関数は、より柔軟で最新のアプローチを提供します:

import subprocess

result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(result.stdout.decode('utf-8')) # Output: 'total 0\n-rw-r--r--  1 memyself  staff  0 Mar 14 11:04 files\n'
ログイン後にコピー

Popenコンストラクター (すべてのバージョン)

拡張互換性と高度な機能を実現するには、低レベルの Popen コンストラクターを使用します。通信を使用すると、出力をキャプチャして入力を渡すことができます。

import subprocess

p = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE)
output, _ = p.communicate()
print(output) # Output: b'.\n..\nfoo\n'
ログイン後にコピー

Notes

シェル コマンドの実行 (shell=True Argument)

デフォルト、関数は単一のプログラムを実行します。複雑なシェル コマンドを実行するには、shell=True を設定します。ただし、これによりセキュリティ上の懸念が生じます。

入力処理

標準入力経由で入力を渡すには、run または Popen で input キーワード引数を指定します。

エラー処理

適切なエラー処理には、check_output を使用してくださいstdout=subprocess.STDOUT を使用するか、stderr=subprocess.STDOUT を使用して Popen を使用します。あるいは、サブプロセスのリターンコードを確認してください。

以上がPython でシェル コマンドを実行し、その出力をキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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