2021年5月5日水曜日

osモジュールの使い方 python

概要

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 件のコメント:

コメントを投稿