1. ホーム
  2. python

python getoutput() サブプロセスでの同等品 [重複] [重複

2023-11-01 16:10:30

質問

のようなシェルコマンドの出力を取得したい。 ls または df をpythonスクリプトで使用することができます。というのは commands.getoutput('ls') は非推奨ですが subprocess.call('ls') はリターンコードを取得するだけです。

何か簡単な解決策があることを期待します。

どのように解決するのですか?

使用方法 サブプロセス.Popen :

import subprocess
process = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
print(out)

communicateはプロセスが終了するまでブロックすることに注意してください。あなたは process.stdout.readline()を使うことができます。 を使うことができます。より詳細な情報は のドキュメントを参照してください。 .