[Python之道] 几种判断操作系统类型的方式

[Python之道] 几种判断操作系统类型的方式

在实际项目中有时候不知道操作系统的类型,比如是Windows、OS X、*Unix?而Python代码虽说是跨平台(CrossPlatform)的,但是毕竟他们还是有些不同的,有的函数方法只能在某些操作系统下实现,这时考虑到程序的可移植性,需要在代码中对当前所在的操作系统做一个判断。

如果只想判断操作系统的类型,可调用 sys 库中的 platform 属性: sys.platform 。它能返回简单的属性:操作系统类型(Windows?Linux?还是其他)。例如,在Windwos 10 64位系统下Python2的解释器中运行,显示结果 win32 ;Python3的解释器中运行,显示结果也为 win32 。Windows 7 64位系统下显示结果同Win10。Debian 9(一个Linux的发行版)下Python2的显示结果为 linux2 ,Python3的显示结果为 linux 。这说明我们可以用 win32 这个返回值来判断当前系统是Windwos,返回 linux 则说明是Linux系统。(由于手上没有Windows 32位版本的系统,故没有测试在它们上门的运行结果,猜测也差不多;另外十分好奇Linux python2返回的结果中为什么会有一个2……)

还有一种方法是调用 os 库中的 name 属性: os.name 。它的返回值有两种: ntposix 。其中, nt 表示Windwos系操作系统, posix 代表类Unix或OS X系统。

那如果我们想要知道更详细的信息呢?想要更详细的区分?这时候就要用到 platform 库了。
platform.system 方法会返回当前操作系统的类型,Windows?Linux?OS X?Unix?FreeBSD?它能比较详细的区分。(其他的一般只能识别Windows和非Windwos)
platform.release 方法会返回当前操作系统的版本。笔者的测试环境是Windows 10 64位,它返回的结果是 10 。(Python2和Python3都一样)。相应的,如果是Windows 7,则会返回 7 ;Windows XP则返回 XP有点特殊的是对于Linux发行版,它返回的是内核(kernel)的版本号。 这点要注意。
platform.version 方法返回的则是当前系统的版本号,这个就不细说了。
platform.machine 方法返回的是系统的结构,64位or32位。
platform.uname 方法返回一个 元组 ,里面包含了当前操作系统的更详细的信息,方便调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值