[Python] スクリプトを動作させている OS を区別する

os モジュールの name を使う

# -*- coding:utf-8 -*-
import os

if os.name == "nt":
print "OS name is %s (Windows XP)" % (os.name)
elif os.name == "posix":
print "OS name is %s (Linux)" % (os.name)
else:
print "OS name is %s" % (os.name)

Windows XP で動作させた場合

> python test.py
OS name is nt (Windows XP)

Fedora13 で動作させた場合

$ python test.py
OS name is posix (Linux)

matplotlib で日本語フォントを使う場合、Windows と Linux ではフォントの指定先が異なるので次のように分けてやる。

# フォントを指定して日本語表示
if os.name == "nt":
# Windows の場合
prop = fm.FontProperties(fname='C:\\WINDOWS\\Fonts\\ipamp.ttf')
else:
# Linux の場合
prop = fm.FontProperties(fname='/usr/share/fonts/ipa-pmincho/ipamp.ttf')

plt.xticks(ind + width / 2., (u'東京 1 月', u'東京 8 月', u'那覇 1 月', u'那覇 8 月'), fontproperties=prop)