新聞中心
platform —- 獲取底層平臺的標識數(shù)據(jù)
源代碼: Lib/platform.py

備注
特定平臺按字母順序排列,Linux 包括在 Unix 小節(jié)之中。
跨平臺
platform.architecture(executable=sys.executable, bits=’’, linkage=’’)
查詢給定的可執(zhí)行文件(默認為 python 解釋器二進制碼文件)來獲取各種架構信息。
返回一個元素 (bits, linkage),其中包含可執(zhí)行文件所使用的位架構和鏈接格式信息。 這兩個值均以字符串形式返回。
無法確定的值將返回為形參預設所給出的值。 如果給出的位數(shù)為 '',則會使用 sizeof(pointer) (或者當 Python 版本 < 1.5.2 時為 sizeof(long)) 作為所支持的指針大小的提示。
此函數(shù)依賴于系統(tǒng)的 file 命令來執(zhí)行實際的操作。 這在幾乎所有 Unix 平臺和某些非 Unix 平臺上只有當可執(zhí)行文件指向 Python 解釋器時才可用。 當以上要求不滿足時將會使用合理的默認值。
備注
在 macOS (也許還有其他平臺) 上,可執(zhí)行文件可能是包含多種架構的通用文件。
要獲取當前解釋器的“64 位性”,更可靠的做法是查詢 sys.maxsize 屬性:
is_64bits = sys.maxsize > 2**32
platform.machine()
返回機器類型,例如 'AMD64' 。 如果該值無法確定則會返回一個空字符串。
platform.node()
返回計算機的網(wǎng)絡名稱(可能不是完整限定名稱!)。 如果該值無法確定則會返回一個空字符串。
platform.platform(aliased=0, terse=0)
返回一個標識底層平臺的字符串,其中帶有盡可能多的有用信息。
輸出信息的目標是“人類易讀”而非機器易解析。 它在不同平臺上可能看起來不一致,這是有意為之的。
如果 aliased 為真值,此函數(shù)將使用各種平臺不同與其通常名稱的別名來報告系統(tǒng)名稱,例如 SunOS 將被報告為 Solaris。 system_alias() 函數(shù)將被用于實現(xiàn)此功能。
將 terse 設為真值將導致此函數(shù)只返回標識平臺所必須的最小量信息。
在 3.8 版更改: 在 macOS 上,此函數(shù)現(xiàn)在會在 mac_ver() 返回的發(fā)布版字符串非空時使用它,以便獲取 macOS 版本而非 darwin 版本。
platform.processor()
返回(真實的)處理器名稱,例如 'amdk6'。
如果該值無法確定則將返回空字符串。 請注意許多平臺都不提供此信息或是簡單地返回與 machine() 相同的值。 NetBSD 則會提供此信息。
platform.python_build()
返回一個元組 (buildno, builddate),以字符串表示的 Python 編譯代碼和日期。
platform.python_compiler()
返回一個標識用于編譯 Python 的編譯器的的字符串。
platform.python_branch()
返回一個標識 Python 實現(xiàn)的 SCM 分支的字符串。
platform.python_implementation()
返回一個標識 Python 實現(xiàn)的字符串。 可能的返回值有: ‘CPython’, ‘IronPython’, ‘Jython’, ‘PyPy’。
platform.python_revision()
返回一個標識 Python 實現(xiàn)的 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()
返回系統(tǒng)的發(fā)布版本,例如 '2.2.0' 或 'NT',如果該值無法確定則將返回一個空字符串。
platform.system()
返回系統(tǒng)平臺/OS的名稱,例如 'Linux', 'Darwin', 'Java', 'Windows'。 如果該值無法確定則將返回一個空字符串。
platform.system_alias(system, release, version)
返回別名為某些系統(tǒng)所使用的常見營銷名稱的 (system, release, version)。 它還會在可能導致混淆的情況下對信息進行一些重排序操作。
platform.version()
返回系統(tǒng)的發(fā)布版本信息,例如 '#3 on degas'。 如果該值無法確定則將返回一個空字符串。
platform.uname()
具有高可移植性的 uname 接口。 返回包含六個屬性的 namedtuple(): system, node, release, version, machine 和 processor。
請注意此函數(shù)添加的第六個屬性 (processor) 并不存在于 os.uname() 的結果中。 并且前兩個屬性的屬性名稱也不一致;os.uname() 是將它們稱為 sysname 和 nodename。
無法確定的條目會被設為 ''。
在 3.3 版更改: 結果由元組改為 namedtuple() 。
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 發(fā)行版, 版本號, CSD 級別 (Service Pack) 和 OS 類型 (多個/單個處理器)。無法確定的值被設置為作為參數(shù)給出的默認值(這些參數(shù)都默認為一個空字符串)。
一點提示: ptype 在單個處理器的 NT 機器上為 'Uniprocessor Free' 而在多個處理器的機器上為 'Multiprocessor Free'。 ‘Free’ 是指該 OS 版本沒有調(diào)試代碼。 它還可能顯示 ‘Checked’ 表示該 OS 版本使用了調(diào)試代碼,即檢測參數(shù)、范圍等的代碼。
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.executable, lib=’’, version=’’, chunksize=16384)
嘗試確定可執(zhí)行文件(默認為 Python 解釋器)所鏈接到的 libc 版本。 返回一個字符串元組 (lib, version),當查找失敗時其默認值將設為給定的形參值。
請注意此函數(shù)對于不同 libc 版本向可執(zhí)行文件添加符號的方式有深層的關聯(lián),可能僅適用于使用 gcc 編譯出來的可執(zhí)行文件。
文件將按 chunksize 個字節(jié)的分塊來讀取和掃描。
Linux 平臺
platform.freedesktop_os_release()
從 os-release 文件獲取操作系統(tǒng)標識并將其作為一個字典返回。 os-release 文件是 freedesktop.org 標準 并在大多數(shù) Linux 發(fā)行版上可用。 一個重要的例外是 Android 和基于 Android 的發(fā)行版。
當 /etc/os-release 或 /usr/lib/os-release 均無法讀取時將引發(fā) OSError 或其子類。
成功時,該函數(shù)將返回一個字典,其中鍵和值均為字符串。 值當中的特殊字符例如 " 和 {TX-PL-LABEL}#x60;` 會被復原。 字段 ``NAME, ID 和 PRETTY_NAME 總是會按照標準來定義。 所有其他字段都是可選的。 廠商可能會包括額外的字段。
請注意 NAME, VERSION 和 VARIANT 等字段是適用于向用戶展示的字符串。 程序應當使用 ID, ID_LIKE, VERSION_ID 或 VARIANT_ID 等字段來標識 Linux 發(fā)行版。
示例:
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 新版功能.
網(wǎng)頁題目:創(chuàng)新互聯(lián)Python教程:platform—-獲取底層平臺的標識數(shù)據(jù)
URL鏈接:http://www.5511xx.com/article/cojesoc.html


咨詢
建站咨詢
