​platform --- 获取底层平台的标识数据​

源代码: Lib/platform.py


备注

特定平台按字母顺序排列,Linux 包括在 Unix 小节之中。

跨平台

platform.architecture(executable=sys.executablebits=''linkage='')

查询给定的可执行文件(默认为 Python 解释器二进制码文件)来获取各种架构信息。

返回一个元素 (bits, linkage),其中包含可执行文件所使用的位架构和链接格式信息。 这两个值均以字符串形式返回。

无法确定的值将返回为形参预设所给出的值。 如果给出的位数为 '',则会使用 sizeof(pointer) (或者当 Python 版本 < 1.5.2 时为 sizeof(long)) 作为所支持的指针大小的提示。

此函数依赖于系统的 file 命令来执行实际的操作。 这在几乎所有 Unix 平台和某些非 Unix 平台上只有当可执行文件指向 Python 解释器时才可用。 当以上要求不满足时将会使用合理的默认值。

备注

在 macOS (也许还有其他平台) 上,可执行文件可能是包含多种架构的通用文件。

要获取当前解释器的“64 位性”,更可靠的做法是查询 sys.maxsize 属性:

is_64bits = sys.maxsize > 2**32

platform.machine()

返回机器类型,例如 'AMD64' 。 如果该值无法确定则会返回一个空字符串。

platform.node()

返回计算机的网络名称(可能不是完整限定名称!)。 如果该值无法确定则会返回一个空字符串。

platform.platform(aliased=Falseterse=False)

返回一个标识底层平台的字符串,其中带有尽可能多的有用信息。

输出信息的目标是“人类易读”而非机器易解析。 它在不同平台上可能看起来不一致,这是有意为之的。

如果 aliased 为真值,此函数将使用各种平台不同与其通常名称的别名来报告系统名称,例如 SunOS 将被报告为 Solaris。 system_alias() 函数将被用于实现此功能。

将 terse 设为真值将导致此函数只返回标识平台所必须的最小量信息。

在 3.8 版更改: 在 macOS 上,此函数现在会在 mac_ver() 返回的发布版字符串非空时使用它,以便获取 macOS 版本而非 darwin 版本。

platform.processor()

返回(真实的)处理器名称,例如 'amdk6'

如果该值无法确定则将返回空字符串。 请注意许多平台都不提供此信息或是简单地返回与 machine() 相同的值。 NetBSD 则会提供此信息。

platform.python_build()

返回一个元组 (buildno, builddate),以字符串表示的 Python 编译代码和日期。

platform.python_compiler()

返回一个标识用于编译 Python 的编译器的的字符串。

platform.python_branch()

返回一个标识 Python 实现的 SCM 分支的字符串。

platform.python_implementation()

返回一个标识 Python 实现的字符串。 可能的返回值有: 'CPython', 'IronPython', 'Jython', 'PyPy'。

platform.python_revision()

返回一个标识 Python 实现的 SCM 修订版的字符串。

platform.python_version()

将 Python 版本以字符串 'major.minor.patchlevel' 形式返回。

请注意此返回值不同于 Python sys.version,它将总是包括 patchlevel (默认为 0)。

platform.python_version_tuple()

将 Python 版本以字符串元组 (major, minor, patchlevel) 形式返回。

请注意此返回值不同于 Python sys.version,它将总是包括 patchlevel (默认为 '0')。

platform.release()

返回系统的发布版本,例如 '2.2.0' 或 'NT',如果该值无法确定则将返回一个空字符串。

platform.system()

返回系统平台/OS的名称,例如 'Linux''Darwin''Java''Windows'。 如果该值无法确定则将返回一个空字符串。

platform.system_alias(systemreleaseversion)

返回别名为某些系统所使用的常见营销名称的 (system, release, version)。 它还会在可能导致混淆的情况下对信息进行一些重排序操作。

platform.version()

返回系统的发布版本信息,例如 '#3 on degas'。 如果该值无法确定则将返回一个空字符串。

platform.uname()

具有高可移植性的 uname 接口。 返回包含六个属性的 namedtuple(): system, node, release, version, machine 和 processor。

processor 将根据需要延后获取。

注意:前两个属性名称与 os.uname() 所提供的名称不同,后者是被命名为 sysname 和 nodename

无法确定的条目会被设为 ''

在 3.3 版更改: 结果由元组改为 namedtuple() 。

在 3.9 版更改: processor 将延后而不是立即被获取。

Java平台

platform.java_ver(release=''vendor=''vminfo=('', '', '')osinfo=('', '', ''))

Jython 的版本接口

返回一个元组 (release, vendor, vminfo, osinfo),其中 vminfo 为元组 (vm_name, vm_release, vm_vendor) 而 osinfo 为元组 (os_name, os_version, os_arch)。 无法确定的值将设为由形参所给出的默认值 (默认均为 '')。

Windows平台

platform.win32_ver(release=''version=''csd=''ptype='')

从 Windows 注册表获取额外的版本信息并返回一个元组 (release, version, csd, ptype) 表示 OS 发行版, 版本号, CSD 级别 (Service Pack) 和 OS 类型 (多个/单个处理器)。无法确定的值被设置为作为参数给出的默认值(这些参数都默认为一个空字符串)。

一点提示: ptype 在单个处理器的 NT 机器上为 'Uniprocessor Free' 而在多个处理器的机器上为 'Multiprocessor Free'。 'Free' 是指该 OS 版本没有调试代码。 它还可能显示 'Checked' 表示该 OS 版本使用了调试代码,即检测参数、范围等的代码。

platform.win32_edition()

返回一个代表当前 Windows 版本的字符串,或者在该值无法确定时返回 None 。 可能的值包括但不限于 'Enterprise''IoTUAP''ServerStandard' 和 'nanoserver'

3.8 新版功能.

platform.win32_is_iot()

如果 win32_edition() 返回的 Windows 版本被识别为 IoT 版则返回 True

3.8 新版功能.

macOS 平台

platform.mac_ver(release=''versioninfo=('', '', '')machine='')

获取 macOS 版本信息并将其返回为元组 (release, versioninfo, machine),其中 versioninfo 是一个元组 (version, dev_stage, non_release_version)

无法确定的条目会被设为 ''。 所有元组条目均为字符串。

Unix 平台

platform.libc_ver(executable=sys.executablelib=''version=''chunksize=16384)

尝试确定可执行文件(默认为 Python 解释器)所链接到的 libc 版本。 返回一个字符串元组 (lib, version),当查找失败时其默认值将设为给定的形参值。

请注意此函数对于不同 libc 版本向可执行文件添加符号的方式有深层的关联,可能仅适用于使用 gcc 编译出来的可执行文件。

文件将按 chunksize 个字节的分块来读取和扫描。

Linux 平台

platform.freedesktop_os_release()

从 os-release 文件获取操作系统标识并将其作为一个字典返回。 os-release 文件是 freedesktop.org 标准 并在大多数 Linux 发行版上可用。 一个重要的例外是 Android 和基于 Android 的发行版。

当 /etc/os-release 或 /usr/lib/os-release 均无法读取时将引发 OSError 或其子类。

成功时,该函数将返回一个字典,其中键和值均为字符串。 值当中的特殊字符例如 " 和 {TX-PL-LABEL}#x60; 会被复原。 字段 NAMEID 和 PRETTY_NAME 总是会按照标准来定义。 所有其他字段都是可选的。 厂商可能会包括额外的字段。

请注意 NAMEVERSION 和 VARIANT 等字段是适用于向用户展示的字符串。 程序应当使用 IDID_LIKEVERSION_ID 或 VARIANT_ID 等字段来标识 Linux 发行版。

示例:

def get_like_distro():info = platform.freedesktop_os_release()ids = [info["ID"]]if "ID_LIKE" in info:# ids are space separated and ordered by precedenceids.extend(info["ID_LIKE"].split())return ids

3.10 新版功能.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/219167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用AI画个女朋友回家过年,1行Python代码,免费实现

#这才是真功夫# 大家好&#xff0c;这里是程序员晚枫&#xff0c;全网同名。 马上过年了&#xff0c;还是单身的举个爪&#xff01; 今年GPT系列的产品非常火爆&#xff0c;今天给大家分享一下&#xff0c;如何免费用AI代码画1个女朋友。&#x1f447; 直接上代码 大家学习 或 …

Centos7防火墙及端口开启

1、防火墙 1.1、查看防火墙是否开启 systemctl status firewalld 1.2、开启防火墙 firewall-cmd --list-ports 1.3、重启防火墙 firewall-cmd --reload 2、端口 2.1、查看所有已开启的端口号 firewall-cmd --list-ports 2.2、手动开启端口 启动防火墙后&#xff0c;默认没有开…

【云原生kubernets】Ingress 功能与应用

一、Ingress 介绍 1.1.Ingress产生原因&#xff1a; 当我们使用Service的时候&#xff0c;Service对集群之外暴露服务的主要方式有两种&#xff1a;NotePort和LoadBalancer&#xff0c;但是这两种方式&#xff0c;都有一定的缺点&#xff1a; &#xff08;1&#xff09;Node…

【初阶C++】入门(超详解)

C入门 前言1. C关键字(C98)2. 命名空间2.1 命名空间定义2.2 命名空间使用2.3嵌套命名空间 3. C输入&输出4. 缺省参数4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载5.1 函数重载概念5.2 C支持函数重载的原理--名字修饰(name Mangling) 6. 引用6.1 引用概念6.2 引用特性6.3 …

C++初阶(十五)Stack和Queue

文章目录 一、Stack的模拟实现二、Queue的模拟实现三、容器适配器1、什么是容器适配器2、STL标准库中stack和queue的底层结构3、 deque的简单介绍(了解)1、deque的原理介绍2、deque的缺陷 4、为什么选择deque作为stack和queue的底层默认容器 一、Stack的模拟实现 #include<…

Web server failed to start. Port 8888 was already in use.

端口占用 强制终止占用端口的进程 获取占用端口的进程ID&#xff08;PID&#xff09;&#xff1a;在终端或命令提示符中运行以下命令以查找占用端口的进程ID&#xff1a; ①在 Unix/Linux/Mac 上&#xff1a;lsof -i :8888 ②在 Windows 上&#xff1a;netstat -ano | findstr …

java实现局域网内视频投屏播放(四)投屏实现

代码链接​​​​​​​​​​​​​​​​​​​​​ 设备发现 上一篇文章说过&#xff0c;设备的发现有两种情况&#xff0c;主动和被动&#xff0c;下面我们来用java实现这两种模式 主动发现 构建一个UDP请求发送到239.255.255.250:1900获取设备信息&#xff0c;UDP包的…

【价值几十万的仿抖音直播电商系统源码共享】

当下&#xff0c;传统的图文电商模式已经走向没落&#xff0c;以抖音为首的直播电商模式备受用户追捧&#xff0c;它具有实时直播和强互动的特点&#xff0c;是传统电商所不具备的优势。而且&#xff0c;当前正是直播电商的红利期&#xff0c;很多主播和品牌商都通过直播电商业…

K8S(四)—pod详解

目录 pod介绍Pod的概念&#xff1a;Pod的特性&#xff1a;Pod的配置&#xff1a;Pod的控制&#xff1a;示例 YAML 文件&#xff1a; pod启动流程问题 两种方式启动镜像的升级和回滚更新 Deployment&#xff1a;回滚检查 Deployment 历史版本回滚到之前的修订版本缩放 Deploymen…

青少年CTF-Crypto(Morse code/ASCII和凯撒)

FLAG&#xff1a;你这一生到底想干嘛 专研方向: Web安全 &#xff0c;Md5碰撞 每日emo&#xff1a;不要因为别人都交卷了&#xff0c;就乱选答案 文章目录 1.Morse code2、ASCII和凯撒的约定 1.Morse code 题目提示摩尔斯电码&#xff0c;这个是给的附件 直接用摩尔斯解密&am…

常用的测试用例大全

登录、添加、删除、查询模块是我们经常遇到的&#xff0c;这些模块的测试点该如何考虑 1)登录 ① 用户名和密码都符合要求(格式上的要求) ② 用户名和密码都不符合要求(格式上的要求) ③ 用户名符合要求&#xff0c;密码不符合要求(格式上的要求) ④ 密码符合要求&#xf…

[c]输出字符金字塔

我们可以把字符金字塔类比数字金字塔 输入3 输出 类似下图 下面附上我的代码&#xff0c;可能有些繁琐 #include<stdio.h> int main() {char s;scanf("%c",&s);int lens-64;//将字符的ascii码值减去64得到循环次数&#xff0c;比如你输入A&#xff0c;l…

一篇文章,带你详细了解华为认证体系证书(二)

一篇文章&#xff0c;带你详细了解华为认证体系证书 &#xff08;一&#xff09;_华为高斯数据库证书_PICACHU的博客-CSDN博客一、总体概括一、总体概括华为认证是华为技术有限公司基于“平台生态”战略&#xff0c;围绕“云-管-端”协同的新ICT技术架构&#xff0c;打造的业界…

Spring Boot--Freemarker渲染技术+实际案例

目录 Freemarker 1.1.什么是Freemarker 1.2.Freemarker模板组成部分 1.3.优点 FreeMarker常见的方法&#xff1a; 2.2.2.数值 2.2.3.布尔值 2.2.4.日期 2.3.常见指令 2.3.1.处理不存在的值 assign 2.3.4.list 2.3.5.include SpringBoot整合Freemarker Freemarker…

STM32-TIM定时器输出比较

目录 一、输出比较简介 二、PWM简介 三、输出比较通道&#xff08;通用&#xff09; 四、输出比较通道&#xff08;高级&#xff09; 五、输出比较模式 六、PWM基本结构 七、PWM参数计算 八、外设介绍 8.1 舵机 8.2 直流电机及驱动 九、开发步骤 十、输出比较库函数…

每日一题,杨辉三角

给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1]]

限流常用算法以及基于Sentinel的微服务限流及熔断

一、服务限流的作用及实现 在没有任何保护机制的情况下&#xff0c;如果所有的流量都进入服务器&#xff0c;很可能造成服务器宕机导致整个系统不可用&#xff0c;从而造成巨大的损失。为了保证系统在这些场景中仍然能够稳定运行&#xff0c;就需要采取一定的系统保护策略&…

Unity_ET框架项目-斗地主_启动运行流程

unity_ET框架项目-斗地主_启动运行流程 项目源码地址&#xff1a; Viagi/LandlordsCore: ET斗地主Demohttps://github.com/Viagi/LandlordsCore下载项目到本地。 启动运行步骤&#xff1a; 下载目录如下&#xff1a; 1. VS&#xff08;我用是2022版VisualStudio&#xff09…

【机器学习】多模态机器学习

多模态机器学习是指利用多种不同的数据类型&#xff08;如图像、文本、音频等&#xff09;来训练和优化机器学习模型。相比于单一模态的机器学习&#xff0c;多模态机器学习可以更好地模拟现实世界中的复杂信息交互&#xff0c;从而提高模型的性能和泛化能力&#xff0c;同时也…

大数据机器学习与深度学习—— 生成对抗网络(GAN)

GAN概述 在讲GAN之前&#xff0c;先讲一个小趣事&#xff0c;你知道GAN是怎么被发明的吗&#xff1f;据Ian Goodfellow自己说&#xff1a; 之前他一直在研究生成模型&#xff0c;可能是一时兴起&#xff0c;有一天他在酒吧喝酒时&#xff0c;在酒吧里跟朋友讨论起生成模型。然…