前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Python之道] 几种判断操作系统

[Python之道] 几种判断操作系统

作者头像
py3study
发布2020-01-08 16:54:43
4.9K0
发布2020-01-08 16:54:43
举报
文章被收录于专栏:python3python3

[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 方法返回一个 元组 ,里面包含了当前操作系统的更详细的信息,方便调用。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • [Python之道] 几种判断操作系统类型的方式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档