ゆっくりPython

Pythonメモ。

Pythonで外部コマンド起動

(注) 今はsubprocessを使うのが推奨されているとのこと。あとでsubprocessで書きなおすよ。

os.popenを使うと良い。popenを使ってlsの結果を出力するサンプル。

import os
for line in os.popen('ls'):
    print line

実行したコマンドでエラーがなかったどうかを調べるにはpopenで返ったファイルオブジェクトをclose()したときの値をチェックすれば良い。正常に動作した場合にはNoneが、エラーがあった場合にはそれ以外(エラー番号?)が返る。

import os
ps = os.popen('lssssss')
for line in ps:
    print line

result = ps.close()
if result is not None:
    print "error:", result

コマンド引数を扱う

sys.argvにコマンド引数が入っている。argv[0]にはスクリプト名が入る。

import sys
print "script name: " + sys.argv[0]
print sys.argv

これを実行してみる。

$ python params.py aaa bbb
script name: params.py
['params.py', 'aaa', 'bbb']
$