

pythonでlinuxの環境変数を取得する2つの方法の概要
今回は、pythonを使って、Linuxの環境変数をプログラムで取得する方法を説明します。
環境変数とは、「Linuxシステムのアプリケーション間で使われる設定値」のことです。例えば、2つのLinuxのアプリケーションは、1つ目のアプリケーションが一度、環境変数に書き出して、2つ目のアプリケーションでその値を読むということを行ったりします。
この記事を読むことよって、Linuxの環境変数をpythonプログラム上で扱うことが可能になります。
pythonでlinuxの環境変数を取得する環境
Linuxの環境変数を取得する前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。
-
-
【python】バージョン確認の方法【→プログラミング初心者向け】
続きを見る
レンタルサーバなどのLinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。
もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。
-
-
レンタルサーバでプログラミングする方法【→ブログのサーバでできる!】
続きを見る
pythonでlinuxの環境変数を取得するサンプルプログラム
ここでは、
- os.environを使う方法
- commands.getoutputを使う方法
の2つのlinuxの環境変数を取得するサンプルプログラム
を説明します。
Linuxの環境変数を取得する(os.environを使う)
osライブラリのインポート
まず、OS(オペレーティングシステム)に依存した機能を使うためのライブラリ**os**をインポートします。
import os
os.environを使ったメインの処理
今回の例では次の3つのLinuxの環境変数を取得することにします。
- 言語設定「LANG」
- 端末の種類「TERM」
- 実行中のシェル「SHELL」
if __name__ == '__main__':
lang = os.environ["LANG"]
print(lang)
term = os.environ["TERM"]
print(term)
sh = os.environ["SHELL"]
print(sh)
os.environを使った例の実行結果
下記のように、LANG、TERM、SHELLのそれぞれの環境変数の値が何であったかを確認することができています。
$ python test.py
en_US.UTF-8
xterm
/bin/bash
Linuxの環境変数を取得する(commands.getoutputを使う)
commandsライブラリのインポート
システムへコマンド文字列を渡して実行するライブラリ commandsをインポートします。
import commands
commands.getoutputを使ったメインの処理
commandsライブラリの**getoutput**関数によってコマンドの出力のみを返すようにします。
if __name__ == '__main__':
print(commands.getoutput("printenv | grep LANG"))
print(commands.getoutput("printenv | grep TERM"))
print(commands.getoutput("printenv | grep SHELL"))
commands.getoutputを使った例の実行結果
printenvのLinuxの出力をそのまま表示しているので、環境変数の値だけではなく、変数の名前自体も見えていることが分かります。
もちろん環境変数を利用する場合は、値の方を利用するので、=(イコール)の先の文字列の値部分を使用する必要があります。
$ python test.py
LANG=en_US.UTF-8
TERM=xterm
SHELL=/bin/bash