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

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

Linda Hamilton
リリース: 2025-01-04 03:28:43
オリジナル
477 人が閲覧しました

How Can I Capture the Output of Shell Commands in Python?

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

シェル コマンドを実行するとき、多くの場合、エラー メッセージか成功メッセージかを問わず、その出力をキャプチャする必要があります。これを実現するためのいくつかのアプローチを次に示します。

Python 3.5

run function:

import subprocess

result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
output = result.stdout.decode('utf-8')
ログイン後にコピー

Python 3.7 のワンライナー:

subprocess.run(['ls', '-l'], capture_output=True, text=True).stdout
ログイン後にコピー

Python 2.7

check_output 関数:

import subprocess

output = subprocess.check_output(['mysqladmin', 'create', 'test', '-uroot', '-pmysqladmin12'])
output = output.decode('utf-8')
ログイン後にコピー

高度なケースの Popen**

import subprocess

p = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = p.communicate()
output = output.decode('utf-8')
if error:
    error = error.decode('utf-8')
ログイン後にコピー

メモ

  • shell=True: この引数は次のように使用します。任意のシェル コマンドの実行を許可することでセキュリティ上の懸念が生じるため、注意してください。
  • communicate: 出力をキャプチャし、必要に応じて入力を送信するには、communicate を使用します。
  • パイプ: パイプの直接接続は避けてください。コマンドを個別に実行し、コマンド間で出力を渡すことを検討してください。

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

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