web-dev-qa-db-ja.com

Pythonで現在のOSを見つけるにはどうすればよいですか?

可能性のある複製:
Python:実行中のOSは何ですか?

タイトルが言うように、Pythonで現在のオペレーティングシステムを見つけるにはどうすればよいですか?

207
UnkwnTech

私は通常、sys.platformを使用してプラットフォームを取得します。 sys.platformはLinux、他のUNIX、およびOS Xを区別しますが、os.nameはそれらすべてに対して「posix」です。

より詳細な情報については、 プラットフォームモジュール を使用してください。これには、マシンアーキテクチャ、OSおよびOSバージョン、Pythonのバージョンなどに関する情報を提供するクロスプラットフォーム機能があります。また、特定のLinuxディストリビューションなどを取得するためのOS固有の機能もあります。

235
dF.

ユーザーが読み取り可能なデータが必要な場合でも、詳細が必要な場合は、 platform.platform() を使用できます。

>>> import platform
>>> platform.platform()
'Linux-3.3.0-8.fc16.x86_64-x86_64-with-Fedora-16-Verne'

platformには、他にも便利なメソッドがいくつかあります。

>>> platform.system()
'Windows'
>>> platform.release()
'XP'
>>> platform.version()
'5.1.2600'

あなたがどこにいるかを特定するために行うことができるいくつかの異なる呼び出しがあります

import platform
import sys

def linux_distribution():
  try:
    return platform.linux_distribution()
  except:
    return "N/A"

print("""Python version: %s
dist: %s
linux_distribution: %s
system: %s
machine: %s
platform: %s
uname: %s
version: %s
mac_ver: %s
""" % (
sys.version.split('\n'),
str(platform.dist()),
linux_distribution(),
platform.system(),
platform.machine(),
platform.platform(),
platform.uname(),
platform.version(),
platform.mac_ver(),
))

このスクリプトの出力は、いくつかの異なるシステム(Linux、Windows、Solaris、MacOS)で実行され、アーキテクチャ(x86、x64、Itanium、power pc、sparc)はここから入手できます。 https://github.com/ hpcugent/easybuild/wiki/OS_flavor_name_version

234
Jens Timmerman
import os
print os.name

これにより、通常必要な基本情報が得られます。たとえば、Windowsの異なるエディションを区別するには、プラットフォーム固有の方法を使用する必要があります。

39
Greg Hewgill

https://docs.python.org/library/os.html

Gregの投稿を補完するために、MacOS、Linux、Unixなどを含むposixシステムを使用している場合、os.uname()を使用して、どのようなシステムであるかをよりよく把握できます。

17
bmdhacks

線に沿って何か:

import os
if (os.name == "posix"):
    print os.system("uname -a")
# insert other possible OSes here
# ...
else:
    print "unknown OS"
5
lenooh