subprocess モジュールを使用して Python 2.x で外部コマンドを実行する方法

王林
リリース: 2023-07-29 18:36:30
オリジナル
918 人が閲覧しました

Python のサブプロセス モジュールは、Python プログラムで外部コマンドを実行する方法を提供します。これにより、オペレーティング システムのコマンド ラインと対話し、コードを通じて外部プログラムの出力と動作を制御および参照できるようになります。この記事では、subprocess モジュールを使用して外部コマンドを実行する方法を紹介し、いくつかの実用的なコード例を示します。

  1. 単純な外部コマンドの実行

単純な外部コマンドを実行するには、subprocess モジュールの subprocess.call() 関数を使用できます。この関数は、外部コマンドの実行後にコマンドの終了ステータス コードを返します。

import subprocess

# 执行一个简单的外部命令:获取当前目录下的文件列表
subprocess.call('ls')
ログイン後にコピー
  1. 外部コマンドの出力を取得する

外部コマンドの出力を取得したい場合は、subprocess.check_output() を使用できます。 ### 関数。この関数は外部コマンドを実行し、その出力を関数の戻り値として返します。

import subprocess

# 执行外部命令:获取当前目录下的文件列表
output = subprocess.check_output('ls')
print(output)
ログイン後にコピー

    外部コマンドの入出力の制御
入力データを外部コマンドに渡したり、外部コマンドからリアルタイムの出力を取得したりする必要がある場合があります。 subprocess モジュールは、これらのニーズを満たす

Popen クラスを提供します。

import subprocess

# 执行外部命令:使用cat命令将输入数据输出到标准输出
input_data = b'Hello, World!'
process = subprocess.Popen(['cat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
output, error = process.communicate(input=input_data)
print(output)
ログイン後にコピー

    コマンド ライン パラメータにスペースが含まれる外部コマンドを実行する
外部コマンドのパラメータにスペースが含まれる場合、コマンド全体を次のように

に渡す必要があります。文字列 subprocess.call() または subprocess.check_output() 関数。

import subprocess

# 执行外部命令:计算一个数的平方
number = 10
subprocess.call('python -c "print({}**2)"'.format(number), shell=True)
ログイン後にコピー

    エラー処理の追加
外部コマンドを実行すると、コマンドが存在しない、コマンドの実行が失敗するなどのエラーが発生する場合があります。 Try-Except ステートメントを使用して、これらのエラーを処理できます。

import subprocess

# 执行外部命令:命令不存在
try:
    subprocess.check_output('nonexistent_command')
except subprocess.CalledProcessError as e:
    print('Command execution failed:', e)
ログイン後にコピー
これらのサンプル コードは、subprocess モジュールを使用して外部コマンドを実行する方法を示しています。 subprocess モジュールを使用すると、コマンド ラインを簡単に操作でき、外部プログラムの動作を柔軟に制御できます。単純なコマンドであっても、複雑なタスクであっても、サブプロセス モジュールはそれを達成するのに役立ちます。

以上がsubprocess モジュールを使用して Python 2.x で外部コマンドを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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