PythonでOSやシステム情報を取得する方法|os・platformモジュールの使い方を解説
Pythonでシステム情報を取得する基本の方法
Pythonを使って実行中のOS名、バージョン、CPUアーキテクチャなどのシステム情報を取得したい場面は多くあります。この記事では、標準ライブラリだけでOS情報を取得する2つの代表的な方法を紹介します。
方法1:osモジュールのuname関数
最もシンプルなのは、osモジュールに用意されているuname()関数を使う方法です。OSの種類やバージョン情報をまとめて取得できます。
>>> import os
>>> os.uname()
ただし、この関数には重要な注意点があります。比較的新しいUNIX系OS(LinuxやmacOSなど)でしか動作しないという点です。Windows環境ではAttributeErrorが発生するため、クロスプラットフォーム対応が必要なコードでは使わないようにしましょう。
方法2:platformモジュール(推奨)
Windows・macOS・Linuxなど、どの環境でも動作させたい場合はplatformモジュールを使用するのがおすすめです。OSの種類からプロセッサ情報まで、さまざまな詳細情報を取得できます。
>>> import platform
>>> platform.machine()
'AMD64'
>>> platform.version()
'10.0.15063'
>>> platform.platform()
'Windows-10-10.0.15063-SP0'
>>> platform.uname()
uname_result(system='Windows', node='DESKTOP-N0VDLO7', release='10', version='10.0.15063', machine='AMD64', processor='Intel64 Family 6 Model 69 Stepping 1, GenuineIntel')
>>> platform.system()
'Windows'
>>> platform.processor()
'Intel64 Family 6 Model 69 Stepping 1, GenuineIntel'
platformモジュールの主な関数一覧
- platform.system():OS名を返します(例:'Windows'、'Linux'、'Darwin')
- platform.machine():マシンのアーキテクチャを返します(例:'AMD64'、'x86_64')
- platform.version():OSのバージョン情報を返します
- platform.platform():OS・バージョン・サービスパックなどを1つの文字列にまとめて返します
- platform.processor():CPU(プロセッサ)の情報を返します
- platform.uname():上記すべての情報を含むオブジェクトを一度に取得できます
まとめ
UNIX系OS限定でよければos.uname()が手軽ですが、Windowsも含めたクロスプラットフォーム対応のコードを書く場合は、platformモジュールを使うのがベストプラクティスです。特にplatform.uname()は必要な情報を一度に取得できるため、環境判定処理の実装時に非常に便利です。
-
PythonでPDFファイルをExcelファイルに変換する方法を解説
Pythonには、さまざまな処理に対応できる豊富なライブラリが用意されています。本記事では、その中でもPDFファイルをExcelファイルに変換する方法について詳しく解説します。PythonでPDFをCSV形式に変換できるパッケージは複数存在しますが、ここではTabula-pyモジュールを使用します。Tabula-pyの主要部分はJavaで書かれており、PDFドキュメントを読み込み、PythonのDataFrameとして取得したり、JSONオブジェクトに変換したりすることができます。事前準備:JavaのインストールTabula-pyを使用する前に、システムにJavaが事前にインストールされている
-
PythonでGETメソッドを使用して情報を渡す方法【CGIプログラミング入門】
GETメソッドとはGETメソッドは、エンコードされたユーザー情報をページリクエストに付加して送信する方式です。ページのURLとエンコードされた情報は「?」記号で区切られます。https://www.test.com/cgi-bin/hello.py?key1=value1&key2=value2GETメソッドは、ブラウザからWebサーバーへ情報を渡す際のデフォルトの方法であり、送信した内容はブラウザのアドレスバー(Locationボックス)に長い文字列として表示されます。そのため、パスワードなどの機密情報をサーバーに送る場合には、GETメソッドは絶対に使用しないでください。また、GET