問題: 成功または失敗に関係なく、シェル コマンドを実行し、その出力を文字列としてキャプチャします。
解決策:
で最新バージョンの Python (3.5 以降) では、stdout=subprocess.PIPE フラグを指定して subprocess.run 関数を使用します。
import subprocess result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE) output = result.stdout.decode('utf-8')
古いバージョンの Python (3-3.4) では、subprocess.check_output を使用します。 function:
import subprocess output = subprocess.check_output(['ls', '-l'])
コマンドへの入力またはエラー処理を含むより複雑なシナリオの場合は、 subprocess.Popen クラスを使用します。通信方法:
import subprocess p = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, error = p.communicate()
以上がPython でシェル コマンドの出力を文字列としてキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。