ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【python】プラットフォームを判別する

 pythonを書いている中でマルチプラットフォームでの実行を考えた場合、プラットフォーム(システム)毎に処理を変更する必要が出てくることがあります。

 今回はそのプラットフォームを判別する方法になります。


 では、始めます。


1:プラットフォームを取得する
 方法は簡単で以下の記述で実行しているプラットフォームの文字列を取得することができます。

import sys

platform_str = sys.platform
print(platform_str)

 このsys.platformでプラットフォーム毎に取得される文字列は以下の通りです(参考ページより引用)。

システム platformの値
AIX 'aix'
Linux 'linux'
Windows 'win32'
Windows/Cygwin 'cygwin'
macOS 'darwin'

 pythonのバージョンによっては取得できる文字列などに変更がある場合があるので注意してください。


2:プラットフォームを判別する
 多くはWindowsMacOSLinuxぐらいの判別ができればよいかと思うので、以下がそのサンプルになります。

・judge_platform.py

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

if sys.platform.startswith('win'):
  print("Windows")
elif sys.platform.startswith('darwin'):
  print("MacOS")
elif sys.platform.startswith('linux'):
  print("Linux")

 pythonのバージョンによっては取得できる文字列が少し変更されてきた過去があるので、startswithを使って最初の文字列で判別するのが良いようです。


 以上がpythonでプラットフォームを判別する方法になります。

 判別自体は簡単ですが、取得できる文字列を残しておきたかったので記事にした次第です。
 特にGUIなどはプラットフォームによってはかなり違ってくるので、GUIのレイアウトや内容をプラットフォーム毎に切り替えたりする場合には必要になってくるのかなと思います。


・参考資料