PythonでOSを判別する方法と作業ディレクトリのパスを取得・表示する方法

PythonでOSを判別する方法と、作業ディレクトリのパスを取得・表示する方法の解説

今回はPythonで、PCのOS情報(WindowsかMacかなど)を取得する方法と、コードを動かしている作業ディレクトリのパスを取得する方法について、その基本を解説します。

といっても難しいことは特になく、次の2つのモジュールを使うだけです。

  • osモジュール
  • sysモジュール

ではさっそくですが、次の使用例を見てください。

コード例

解説

OS判別:osモジュールとsysモジュールについて

今回のコードでは特にわかりにくいような処理はないと思うので、あまり解説も必要ないかもしれませんね。

まず最初にモジュールを2つインポートしています。

次に、check_os()関数を定義しています。変数os_infoに、sysモジュールによって得られたOSの名前を代入しています。

OSの種類を判別するモジュールはいくつかあるのですが、今回はsysモジュールのほうを使っています。

osモジュールでも、

os.name

とすることで、Windowsならば文字列’nt’が得られます。

一方、sysモジュールを使って、

sys.platform

 とすると、文字列’win32’が得られます。

単純に考えるとwin32のほうがWindowsだとわかりやすいですね。ちなみに、Macでsys.platformを使うと文字列’darwin’となります。こっちは逆にMacだとわかりにくいですね。

sys.platformを使った場合に各OSでどのような結果になるかというと、公式ドキュメントでは、

システムplatform の値
AIX'aix'
Emscripten'emscripten'
Linux'linux'
WASI'wasi'
Windows'win32'
Windows/Cygwin'cygwin'
macOS'darwin'
公式ドキュメントより

となっています。

同じようにPCの情報を取得できるという点では、osモジュールもsysモジュールも同じようなものだと思われますが、OSの情報という点ではsys.platformのほうがより詳しい情報を得られます。

4行目~20行目:ある関数内部で別の関数を呼び出す

4行目から20行目では2つの関数を定義しています。そのうち、最初の関数check_os()は、2つ目の関数display_cwd_path()の内部で呼び出され、実行されています。

このように、ある関数が別の関数を呼び出して実行するというのは過去記事「Pythonで関数から別の関数を呼び出して使う方法について初心者向けの解説。呼び出し元(caller)と呼び出し先(callee)とreturn文について」で解説していますので、ぜひ読んでみてください。

ポイントは最初のcheck_os()内部で、

return os_info

としているところです。このreturn文がないと、せっかくos_infoを作ったとしても、その情報を関数display_cwd_path()に伝えることができません。そうなれば、関数display_cwd_path()はinfo_osという情報を使うことができず、上手く動作しません。

現在の作業ディレクトリのパスを取得:os.getcwd()

またosモジュールが提供するgetcwd()関数(cwd`=current working directory)を使って、

os.getcwd()

とすることで、現在の作業ディレクトリのパスを取得できます。

14行目:Windowsのパス表記を修正

この14行目の部分の処理は特に不要かもしれませんが、文字列の操作の練習がてらに作ってみました。

Windowsのパス表記は「¥」記号を使った独特な表し方)になっています。たとえば、

C:\\Users\\ユーザー名\\AppData\\Local\\Programs\\......

みたいな感じです。

ですが、Windows以外だと「¥」記号ではなく「/」記号を使った、次のような表し方になっています。

C:/Users/ユーザー名/AppData/Local/Programs/......

これに見た目を統一させるためにあえてこのような処理を作ってみました。

Pythonをプロから短期間で合理的にマスターするなら、やはり動画による学習方法がわかりやすくオススメです。世界最大級のオンライン学習サイトUdemy(ユーデミー)【PR】ではPythonのプログラミング講座が入門~応用レベルまで幅広く展開されています。

Udemyの動画講座では講師に質問が可能、動画なのでプログラムの動きがわかりやすく理解しやすい、わかりにくいところを何度も繰り返し再生できる、プログラミングスクールよりもはるかに安いというメリットがあります。

その中でも次のような講座がおすすめです。

他にも多数のプログラミング講座があるのでぜひ活用し、合理的に短期間でプログラミングを身に着けましょう。