ホームページ >バックエンド開発 >Python チュートリアル >Python で「subprocess.call()」からプロセス出力を取得するにはどうすればよいですか?

Python で「subprocess.call()」からプロセス出力を取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-30 04:26:17185ブラウズ

How Can I Retrieve Process Output from `subprocess.call()` in Python?

subprocess.call() からのプロセス出力の取得

2.7 より前の Python バージョンでは、subprocess を使用して呼び出されたプロセスから出力を取得します。 call() は難しい場合があります。 StringIO.StringIO オブジェクトを stdout 引数に渡すと、StringIO オブジェクトに 'fileno' 属性がないため、エラーが発生します。

解決策

Python バージョン 2.7 の場合上記では、subprocess.check_output 関数が簡単な解決策を提供します。サブプロセスの実行と、その標準出力を文字列としてキャプチャして返すことを組み合わせます。

例 (Linux でテスト済み):

import subprocess

output = subprocess.check_output(['ping', '-c', '1', '8.8.8.8'])

print(output)

ping コマンドはLinux 表記 (カウントの -c)。 Windows の場合は、-n に変更します。

詳細については、この [他の投稿](https://stackoverflow.com/a/5647266/6214952) のより包括的な回答を参照してください。

以上がPython で「subprocess.call()」からプロセス出力を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。