本文介绍 Python 判断操作系统的3种方法。以下的方法将分为这几部分:
- Python
os.name - Python
sys.platform - Python
platform.system()
Python os.name
Python 判断操作系统的方法可以使用 os.name,这里以 Python 3 为例,os.name 会返回 posix、nt、java 这几种结果。使用前需要先 import os。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
print(os.name)# 在 Ubuntu 16.04 上的输出如下:
# posix# 在 MacOS 10.15.7 上的输出如下:
# posix# 在 Windows 10 上的输出如下:
# nt
在 os 模块下还有另一个 uname() 函数可以使用,uname() 会返回操作系统相关的版本信息。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
print(os.uname())# 在 Ubuntu 16.04 上的输出如下:
# sysname='Linux', nodename='shengyu', release='4.10.0-40-generic', version='#44~16.04.1-Ubuntu SMP Thu Nov 9 15:37:44 UTC 2017', machine='x86_64'# 在 MacOS 10.15.7 上的输出如下:
# posix.uname_result(sysname='Darwin', nodename='shengyudeMacBook-Pro.local', release='19.6.0', version='Darwin Kernel Version 19.6.0: Thu Sep 16 20:58:47 PDT 2021; root:xnu-6153.141.40.1~1/RELEASE_X86_64', machine='x86_64')# Windows 下没有 os.uname()
sys.platform 有更细的分类,下一节会介绍。
Python sys.platform
sys.platform 返回的结果有以下几种情况:
- AIX:
'aix' - Linux:
'linux' - Windows:
'win32' - Windows/Cygwin:
'cygwin' - macOS:
'darwin'
如果要用 sys.platform 判断操作系统,可以使用 startswith(),像 linux 与 linux2 的情况就可以被包含在以 linux 开头的字符串,写在同一个条件式里。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sysif sys.platform.startswith('linux'):print('Linux')
elif sys.platform.startswith('darwin'):print('macOS')
elif sys.platform.startswith('win32'):print('Windows')
Python platform.system()
Python 判断操作系统的方法可以使用 platform.system() 函数,platform.system() 会返回操作系统的名称,例如:Linux、Darwin、Java、Windows 这几种。如果无法判断操作系统的话会返回空字符串。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import platformprint(platform.system())
print(platform.release())# 在 Ubuntu 16.04 上的输出如下:
# Linux
# 4.10.0-40-generic# 在 MacOS 10.15.7 上的输出如下:
# Darwin
# 19.6.0# 在 Windows 10 上的输出如下:
# Windows
# 10