概要
pythonでosのコマンド実行する際に、osモジュールをよく使っていたので、改めて使い方をまとめてみました。公式のドキュメントを見ると、subprocessモジュールに置き換えることが推奨されているので、そっちのほうを覚えたほうがいいかもしれません。
メソッド名 | 説明 |
---|---|
os.system | 引数で与えられたコマンド(文字列)を実行します。 |
os.popen | 引数で与えられたコマンド(文字列)を実行して、 その結果を変数に格納するときに使います。 |
使用例
pwdコマンドをos.systemとos.popenで使ってみます。# coding: utf-8 import os print("-----------------") system_r = os.system("pwd") print(system_r) print("-----------------") popen_r = os.popen("pwd").read().rstrip() print(popen_r) print("-----------------")
os.systemの方はコマンドを実行して、実行結果を戻り値で返していますが、os.popenの方はread()関数を使うと、実行結果が変数に格納されて、print関数を使わないと中身が表示されませんでした。
pi@raspberrypi:~ $ python3 os_test.py ----------------- /home/pi 0 ----------------- /home/pi -----------------
subprocessモジュールに置き換える場合の使用例
同じことをsubprocessモジュールで実行する場合には以下のように書きます。
# coding: utf-8 import subprocess print("-----------------") system_r = subprocess.call("pwd") print(system_r) print("-----------------") popen_r = subprocess.check_output("pwd").decode(encoding='utf-8').rstrip() print(popen_r) print("-----------------")
0 件のコメント:
コメントを投稿