subprocess
シェルの中で他のプログラムを起動し、そのプログラムが生成した出力を知りたいだけなら、getoutput()関数を使う。
import subprocess as sp ls = sp.getoutput('ls') ls > 'Applications\nDesktop\nDocuments\n...(略)'
オプションとパイプ、リダイレクトを入れることも可能。
ls_l = sp.getoutpu('ls -a') ls_l > '.\n..\n.Backup\n...(略)' ls = sp.getoutput('ls | wc') ls > ' 27 27 263'
getstatusoutput()
で終了ステータスと出力をタプルで返す。
ls = sp.getstatusoutput('ls') ls > (0, 'Applications\nDesktop\nDocuments\n...(略)')
ただ終了ステータスを得たいだけならrun
を使えば良い。(ま、あんまり上と変わらないか..)
ls = sp.run(['ls']) > Applications Dropbox Pictures pipupgrade.py Desktop Library Public Documents Movies Downloads Music ls > CompletedProcess(args=['ls'], returncode=0) ls.args > ['ls'] ls.returncode > 0
subprocessを使ったプログラムの例です。
pip3でインストールしたモジュールの中で更新可能なモジュールを全てinstall --upgradeするものになっています。