专栏首页python3[Python之道] 几种判断操作系统

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python中的yield

    上一篇一番简单介绍了下scrapy工具的使用,深入时一番发现,yield这个关键字在很多scrapy的例子和教程里用的特别多。所以今天我们来研究下yield到底...

    efonfighting
  • 性能工具之Jmeter脚本python启动

    使用python执行Jmeter脚本需要与Jmeter脚本有约定,这样才能通过python脚本去执行咱们的Jmeter测试脚本。

    高楼Zee
  • 爬虫 (八) 学习 python 基础知识点的正确姿势 (一)

    我会以比较学习的方式,主要拿Python和我之前学习的javascript进行比较,拿学习javascript的学习经历来迁移到学习Python,如果你在此之前...

    公众号---志学Python
  • 性能工具之Jmeter关联小白学习

    简单的说:每次请求服务器,服务器会给客户端发送一个动态值,但服务器会每次校验客户端是否携带该值并做对比,如果每次请求携带值与发送的值是正确就放行,如...

    高楼Zee
  • 目标检测算法之SSD的数据增强策略

    这篇文章是对前面《目标检测算法之SSD代码解析》,推文地址如下:点这里的补充。主要介绍SSD的数据增强策略,把这篇文章和代码解析的文章放在一起学最好不过啦。本节...

    BBuf
  • Python - 基础知识

    在代码世界中,赋值符号=(一个等号)不是左边等于右边的意思。仅仅表示赋值动作:把右边的内容放到了左边的盒子中。

    xing.org1^
  • 爬虫 (十一) 学习 python 基础知识点的正确姿势 (四)

    我会以比较学习的方式,主要拿Python和我之前学习的javascript进行比较,拿学习javascript的学习经历来迁移到学习Python,如果你在此之前...

    公众号---志学Python
  • 使用自己的数据集训练MobileNet、ResNet实现图像分类(TensorFlow)| CSDN博文精选

    之前写了一篇博客《使用自己的数据集训练GoogLenet InceptionNet V1 V2 V3模型(TensorFlow)》https://panjinq...

    AI科技大本营
  • 爬虫 (十) 学习 python 基础知识点的正确姿势 (三)

    我会以比较学习的方式,主要拿Python和我之前学习的javascript进行比较,拿学习javascript的学习经历来迁移到学习Python,如果你在此之前...

    公众号---志学Python
  • 简单使用了下scrapy爬虫工具

    前天一番写了《用爬虫看看我们工作的”前途“》,里面收集了52job上在深圳的”前端“和”区块链“两个关键字的职位信息。

    efonfighting

扫码关注云+社区

领取腾讯云代金券