本文介绍 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