如何在Python中找到当前的操作系统?

Unk*_*ech 225 python cross-platform platform-specific

可能重复:
Python:我在运行什么操作系统?

正如标题所说,我怎样才能在python中找到当前的操作系统?

Jen*_*man 256

如果您想要用户可读数据但仍然详细,可以使用platform.platform()

>>> import platform
>>> platform.platform()
'Linux-3.3.0-8.fc16.x86_64-x86_64-with-fedora-16-Verne'
Run Code Online (Sandbox Code Playgroud)

platform 还有一些其他有用的方法:

>>> platform.system()
'Windows'
>>> platform.release()
'XP'
>>> platform.version()
'5.1.2600'
Run Code Online (Sandbox Code Playgroud)

您可以通过以下几种不同的方式来识别您的身份

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(),
))
Run Code Online (Sandbox Code Playgroud)

此脚本的输出在几个不同的系统(Linux,Windows,Solaris,MacOS)上运行,架构(x86,x64,Itanium,power pc,sparc)可在此处获取:https://github.com/hpcugent/easybuild/维基/ OS_flavor_name_version

  • `platform.linux_distribution()` 已贬值,将在 3.8 中删除。考虑更改为 [`distro`](https://pypi.org/project/distro/) 包。有关更多详细信息,请参阅 [此处](https://docs.python.org/3.7/library/platform.html#platform.linux_distribution)。 (2认同)

dF.*_*dF. 251

我通常sys.platform用来获得平台.sys.platform将区分linux,其他unix和OS X,而所有这些os.name都是" posix".

有关更详细的信息,请使用平台模块.这有跨平台的功能,可以为您提供有关机器架构,操作系统和操作系统版本,Python版本等的信息.此外,它还具有特定于操作系统的功能,可以获得特定的Linux发行版.

  • 我不会推荐这两个。更可靠的方法是“platform.system()”。请参阅此答案:/sf/answers/4064990681/。 (7认同)

Gre*_*ill 39

import os
print os.name
Run Code Online (Sandbox Code Playgroud)

这为您提供了通常需要的基本信息.要区分不同版本的Windows,您必须使用特定于平台的方法.

  • 在mac上,os.name给出了"posix",对于我的情况没有帮助 - sys.platform做了伎俩 (26认同)
  • 在 Windows 中它只显示 nt (2认同)
  • 在solaris上,它也显示了posix.:p (2认同)

bmd*_*cks 17

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

为了补充Greg的帖子,如果你使用的是posix系统,包括MacOS,Linux,Unix等,你可以使用os.uname()来更好地了解它是什么类型的系统.


len*_*ooh 6

一些事情:

import os
if (os.name == "posix"):
    print os.system("uname -a")
# insert other possible OSes here
# ...
else:
    print "unknown OS"
Run Code Online (Sandbox Code Playgroud)

  • 你的答案才是真正的答案 (2认同)