Python スクリプト内からコマンド ライン プログラムを実行し、出力を取得したいと考えています。
foo によって表示される情報を取得してスクリプトで使用するにはどうすればよいですか?
例えば、foo file1
コマンドラインから呼び出すと、次のように出力されます。
Size: 3KB
Name: file1.txt
Other stuff: blah
次のようにしてファイル名を取得するにはどうすればよいですかfilename = os.system('foo file1')
?
ベストアンサー1
サブプロセス モジュールを使用します。
import subprocess
command = ['ls', '-l']
p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.IGNORE)
text = p.stdout.read()
retcode = p.wait()
text
その後、変数を使用して正規表現、分割など、必要な操作を何でも実行できます。
の 2 番目と 3 番目のパラメータはsubprocess.Popen
オプションであり、削除できます。