Pythonでオペレーティングシステムを確認するにはどうすればよいですか?


148

(スクリプトが実行されるコンピューター上の)オペレーティングシステムを確認したい。

os.system('uname -o')Linuxで使用できることはわかっていますが、コンソールにメッセージが表示され、変数に書き込みたいのですが。

スクリプトがMac、Windows、Linuxのいずれであるかを判別できれば問題ありません。どうすれば確認できますか?



回答:


287

使用できますsys.platform

from sys import platform
if platform == "linux" or platform == "linux2":
    # linux
elif platform == "darwin":
    # OS X
elif platform == "win32":
    # Windows...

sys.platformより細かい粒度を持っていsys.nameます。

有効な値については、ドキュメントを参照してください。

実行しているOSは?」に対する回答も参照してください


8
cygwinでは、誰かが期待するようには戻ら"cygwin"ないことに注意してください"win32"
のMichałBentkowski

21
ありがとう。linuxとlinux2の違いは何ですか?
Tharindu Rusira 2013

1
BSDの出力はどうなりますか?
ガロア2015年

1
Python 3.3以降"linux2"はの可能な値ではなくなっていることに注意してくださいplatform(裏付けについては、リンクされたドキュメントを参照してください)。したがって、Python 3.3以降のみをサポートする必要がある場合は、 `またはplatform ==" linux2 "`句を最初の状態。
マークアメリー

23

「Linux」、「Windows」、または「Darwin」(Mac)以外のプラットフォームで、精度を上げずに知りたい場合は、次を使用する必要があります。

>>> import platform
>>> platform.system()
'Linux'  # or 'Windows'/'Darwin'

platform.systemこの関数は使用していますuname内部的。


1
私は、このソリューションが好き、私はドキュメントから、それが返されると述べていることを指摘したいLinuxWindowsJavaまたは空の文字列。devdocs.io/python~3.7/library/platform#platform.system
Brandon

2
@BrandonBenefield、列挙は可能な値の例です。Appleデバイスでは、「Darwin」を返します。
Laurent LAPORTE

15

をチェックすることで、お使いのOSのかなり大まかなアイデアを得ることができますsys.platform

その情報を入手したら、そのようなものを呼び出して、os.uname()より具体的な情報を収集するのに適切かどうかを判断できます。また、UNIXライクなOSではPythonシステム情報、Windowsではpywin32などを使用することもできます。

OSを気にせずに詳細な検査を行う場合は、psutilもあります。



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.