本文介绍 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 sys
if 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 platform
print(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
本文介绍三种Python判断当前操作系统的实用方法:使用os.name获取系统类型如posix或nt;利用sys.platform获得更详细的平台信息,如win32或darwin;通过platform.system()直接得到操作系统名称。
6万+

被折叠的 条评论
为什么被折叠?



