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

news2024/12/22 14:28:50

源代码: 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 precedence
        ids.extend(info["ID_LIKE"].split())
    return ids

3.10 新版功能.

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

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

相关文章

【AI】java,在集合中找最接近给定值的数,且比给定值小

目录 一、最终得到的方案 二、AI辅助找到方案 2.1 【C知道】提供java代码支持 2.2 【文心一言】提供字段翻译支持 一、最终得到的方案 /*** 在 collection 中&#xff0c;找跟 value 最大接近值&#xff0c;且该值小于等于 value** param collection 不为null。* param val…

css 纯样式实现绘出进度条

效果&#xff1a; css代码&#xff1a; .bar{height: 14px;width: 100%;font-size: 10px;margin-top: 5px;background-color: #f5f5f5;}.bar::before{display: block;counter-reset: progress var(--precent); content: ;width: calc(1% * var(--precent));color: #fff;height:…

酸奶店创业新模式,可以轻松应付风险的对策

本人经营一家酸奶店&#xff0c;已经5年时间&#xff0c;也不断学习和探索新的模式&#xff0c;希望我的一些经验可以帮到你。&#xff08;可以点赞收藏&#xff0c;方便以后随时查阅&#xff09; 这几年&#xff0c;各行各业&#xff0c;大家都在说&#xff0c;生意不好做&am…

Qt设置类似于qq登录页面(ikun)

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QWindow> #include <QIcon> #include <QLabel> #include <QMovie> #include <QLineEdit> #include <QPushButton>QT_BEGIN_NAMESPACE namespace Ui { class…

jemeter,断言:响应断言、Json断言

一、响应断言 接口A请求正常返回值如下&#xff1a; {"status": 10013, "message": "user sign timeout"} 在该接口下创建【响应断言】元件&#xff0c;配置如下&#xff1a; 若断言成功&#xff0c;则查看结果树的接口显示绿色&#xff0c;若…

新版Spring Security6.2案例 - Basic HTTP Authentication

前言&#xff1a; 书接上文&#xff0c;翻译官网Authentication的Username/Password这页&#xff0c;接下来继续翻译basic的这页&#xff0c;因为官网说的都是原理性的&#xff0c;这边一个小案例关于basic http authentication。 Basic Authentication 本节介绍 HTTP 基本身…

C语言union联合体(共用体)

一、定义 联合体&#xff08;共用体&#xff09;是一种特殊的自定义的数据类型&#xff0c;它包含一系列的成员变量&#xff0c;这些成员变量共用一块内存空间。 语法&#xff1a; union 标识符 { data_type 标识符1; data_type 标识符2; . . . dat…

电影推荐系统

基于springboot vue实现的电影推荐系统&#xff0c;通过Jsoup数据爬取。 效果图如下&#xff1a;

Java01 169-184

数组添加 import java.util.Scanner; public class ArrayAdd02 {public static void main(String[] args) {Scanner myScanner new Scanner(System.in);//数组一旦定义&#xff0c;不可以增加&#xff0c;必须增加新的数组int[] arr {1, 2, 3};do {int[] arrNew new int[arr…

2023年【G3锅炉水处理】免费试题及G3锅炉水处理模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年【G3锅炉水处理】免费试题及G3锅炉水处理模拟试题&#xff0c;包含G3锅炉水处理免费试题答案和解析及G3锅炉水处理模拟试题练习。安全生产模拟考试一点通结合国家G3锅炉水处理考试最新大纲及G3锅炉水处理考试真…

目标检测DOTA数据集提取感兴趣类别数据

DOTA数据集 DOTA数据集包含2806张航空图像&#xff0c;尺寸大约从800x800到4000x4000不等&#xff0c;包含15个类别共计188282个实例。其标注方式为四点确定的任意形状和方向的四边形&#xff08;区别于传统的对边平行bbox&#xff09;。类别分别为&#xff1a;plane, ship, s…

20、备忘录模式(Memento Pattern,不常用)

备忘录模式又叫作快照模式&#xff0c;该模式将当前对象的内部状态保存到备忘录中&#xff0c;以便在需要时能将该对象的状态恢复到原先保存的状态。 备忘录模式提供了一种保存和恢复状态的机制&#xff0c;常用于快照的记录和状态的存储&#xff0c;在系统发生故障或数据发生…

为什么QLC NAND才是ZNS SSD最大的赢家?-part2

ZNS出现的背景是什么&#xff1f;ZNS SSD的原理是把namespace空间划分多个zone空间&#xff0c;zone空间内部执行顺序读写。 在ZNS的场景下&#xff0c;不同应用按照Zone配置信息&#xff0c;相应存放业务数据。由于是Host管理数据的摆放和存取位置&#xff0c;会最大程度减少G…

山海鲸可视化软件:选择合适的图表,让数据可视化更高效

作为一名山海鲸可视化软件的开发者&#xff0c;我深知选择合适的图表对于数据可视化的重要性。下面我将从开发者的角度&#xff0c;分享一些关于如何选择合适可视图表的建议。 首先&#xff0c;我们需要明确数据可视化的目标。不同的图表类型具有不同的特点和适用场景&#xff…

数据结构:并查集的原理和运用

文章目录 什么是并查集&#xff1f;并查集的模拟实现并查集的应用省份数量等式方程的可满足性 本篇总结的是并查集的使用方法和运用 什么是并查集&#xff1f; 给定这样一个场景&#xff0c;n个不同的元素划分成不同的&#xff0c;不相交的集合&#xff0c;在开始的时候&…

JavaEE之多线程编程:2.创建线程及Thread类常见方法(超全!!!)

一、创建线程 Java中创建线程的写法有很多种&#xff01;&#xff01;&#xff01;这里介绍其中5种。 方法1&#xff1a;继承Thread类&#xff0c;重写run 创建一个类&#xff0c;让这个类继承自Thread父类&#xff0c;再重写我们的run方法就可以了。 使用Thread类&#xff…

文件批量管理方法:100个文件要怎样快速放在100个指定的文件夹中

处理大量文件时&#xff0c;经常要将多个文件放入相应的文件夹中。如果要处理的文件数量较大&#xff0c;例如100个文件要放入100个指定的文件夹中&#xff0c;那么如何快速有效地完成这个任务呢&#xff1f;下面看下云炫文件管理批量管理文件的方法&#xff0c;快速将100个文件…

数据结构之----二叉树、二叉树遍历、二叉树数组表示、二叉搜索树

数据结构之----二叉树、二叉树遍历、二叉树数组表示、二叉搜索树 什么是二叉树&#xff1f; 二叉树是一种非线性数据结构&#xff0c;代表着祖先与后代之间的派生关系&#xff0c;体现着“一分为二”的分治逻辑。 与链表类似&#xff0c;二叉树的基本单元是节点&#xff0c;每…

jsonpath:使用Python处理JSON数据

使用Python处理JSON数据 25.1 JSON简介 25.1.1 什么是JSON JSON全称为JavaScript Object Notation&#xff0c;一般翻译为JS标记&#xff0c;是一种轻量级的数据交换格式。是基于ECMAScript的一个子集&#xff0c;采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清…

强化学习--背景

背景 强化学习 背景方向马尔可夫决策过程动态规划 方向 从数据中学习&#xff0c;或者从演示中学习包含丰富的门类&#xff0c;例如以模仿学习为代表的来自专家的数据中学习策略、以强化逆学习&#xff0c;代表来自数据中学习奖励函数以及来自人类反馈中学习&#xff0c;为代表…