关于跨平台:如何在 Python 中找到当前的操作系统?

How can I find the current OS in Python?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Python: What OS am I running on?

正如标题所说,如何在python中找到当前的操作系统?


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

1
2
3
>>> import platform
>>> platform.platform()
'Linux-3.3.0-8.fc16.x86_64-x86_64-with-fedora-16-Verne'

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

1
2
3
4
5
6
>>> platform.system()
'Windows'
>>> platform.release()
'XP'
>>> platform.version()
'5.1.2600'

您可以拨打以下几种不同的电话来确定您的位置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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('\
'
),
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

例如sparc 上的 Solaris 给出:

1
2
3
4
5
6
7
8
9
Python version: ['2.6.4 (r264:75706, Aug  4 2010, 16:53:32) [C]']
dist: ('', '', '')
linux_distribution: ('', '', '')
system: SunOS
machine: sun4u
platform: SunOS-5.9-sun4u-sparc-32bit-ELF
uname: ('SunOS', 'xxx', '5.9', 'Generic_122300-60', 'sun4u', 'sparc')
version: Generic_122300-60
mac_ver: ('', ('', '', ''), '')

或 M1 上的 MacOS

1
2
3
4
5
6
7
8
9
Python version: ['2.7.16 (default, Dec 21 2020, 23:00:36) ', '[GCC Apple LLVM 12.0.0 (clang-1200.0.30.4) [+internal-os, ptrauth-isa=sign+stri']
dist: ('', '', '')
linux_distribution: ('', '', '')
system: Darwin
machine: arm64
platform: Darwin-20.3.0-arm64-arm-64bit
uname: ('Darwin', 'Nautilus.local', '20.3.0', 'Darwin Kernel Version 20.3.0: Thu Jan 21 00:06:51 PST 2021; root:xnu-7195.81.3~1/RELEASE_ARM64_T8101', 'arm64', 'arm')
version: Darwin Kernel Version 20.3.0: Thu Jan 21 00:06:51 PST 2021; root:xnu-7195.81.3~1/RELEASE_ARM64_T8101
mac_ver: ('10.16', ('', '', ''), 'arm64')


我通常使用 sys.platform (docs) 来获取平台。 sys.platform 将区分 linux、其他 unix 和 OS X,而 os.name 对于所有这些都是 "posix"。

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


1
2
import os
print os.name

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


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

作为对 Greg 帖子的补充,如果您使用的是 posix 系统,包括 MacOS、Linux、Unix 等,您可以使用 os.uname() 来更好地了解它是哪种系统是。


类似的东西:

1
2
3
4
5
6
7
import os
if os.name =="posix":
    print(os.system("uname -a"))
# insert other possible OSes here
# ...
else:
    print("unknown OS")