platform --- 獲取底層平臺(tái)的標(biāo)識(shí)數(shù)據(jù)?

示例代碼: Lib/platform.py


注解

特定平臺(tái)按字母順序排列,Linux 包括在 Unix 小節(jié)之中。

跨平臺(tái)?

platform.architecture(executable=sys.executable, bits='', linkage='')?

查詢給定的可執(zhí)行文件(默認(rèn)為 Python 解釋器二進(jìn)制碼文件)來(lái)獲取各種架構(gòu)信息。

返回一個(gè)元素 (bits, linkage),其中包含可執(zhí)行文件所使用的位架構(gòu)和鏈接格式信息。 這兩個(gè)值均以字符串形式返回。

無(wú)法確定的值將返回為形參預(yù)設(shè)所給出的值。 如果給出的位數(shù)為 '',則會(huì)使用 sizeof(pointer) (或者當(dāng) Python 版本 < 1.5.2 時(shí)為 sizeof(long)) 作為所支持的指針大小的提示。

此函數(shù)依賴于系統(tǒng)的 file 命令來(lái)執(zhí)行實(shí)際的操作。 這在幾乎所有 Unix 平臺(tái)和某些非 Unix 平臺(tái)上只有當(dāng)可執(zhí)行文件指向 Python 解釋器時(shí)才可用。 當(dāng)以上要求不滿足時(shí)將會(huì)使用合理的默認(rèn)值。

注解

在 Mac OS X(也許還有其他平臺(tái))上,可執(zhí)行文件可能是包含多種架構(gòu)的通用文件。

要獲取當(dāng)前解釋器的“64 位性”,更可靠的做法是查詢 sys.maxsize 屬性:

is_64bits = sys.maxsize > 2**32
platform.machine()?

返回機(jī)器類型,例如 'i386'。 如果該值無(wú)法確定則會(huì)返回一個(gè)空字符串。

platform.node()?

返回計(jì)算機(jī)的網(wǎng)絡(luò)名稱(可能不是完整限定名稱?。?。 如果該值無(wú)法確定則會(huì)返回一個(gè)空字符串。

platform.platform(aliased=0, terse=0)?

返回一個(gè)標(biāo)識(shí)底層平臺(tái)的字符串,其中帶有盡可能多的有用信息。

輸出信息的目標(biāo)是“人類易讀”而非機(jī)器易解析。 它在不同平臺(tái)上可能看起來(lái)不一致,這是有意為之的。

如果 aliased 為真值,此函數(shù)將使用各種平臺(tái)不同與其通常名稱的別名來(lái)報(bào)告系統(tǒng)名稱,例如 SunOS 將被報(bào)告為 Solaris。 system_alias() 函數(shù)將被用于實(shí)現(xiàn)此功能。

terse 設(shè)為真值將導(dǎo)致此函數(shù)只返回標(biāo)識(shí)平臺(tái)所必須的最小量信息。

platform.processor()?

返回(真實(shí)的)處理器名稱,例如 'amdk6'。

如果該值無(wú)法確定則將返回空字符串。 請(qǐng)注意許多平臺(tái)都不提供此信息或是簡(jiǎn)單地返回與 machine() 相同的值。 NetBSD 則會(huì)提供此信息。

platform.python_build()?

返回一個(gè)元組 (buildno, builddate),以字符串表示的 Python 編譯代碼和日期。

platform.python_compiler()?

返回一個(gè)表示用于編譯 Python 的編譯器的的字符串。

platform.python_branch()?

返回一個(gè)表示 Python 實(shí)現(xiàn)的 SCM 分支的字符串。

platform.python_implementation()?

返回一個(gè)標(biāo)識(shí) Python 實(shí)現(xiàn)的字符串。 可能的返回值有: 'CPython', 'IronPython', 'Jython', 'PyPy'。

platform.python_revision()?

返回一個(gè)標(biāo)識(shí) Python 實(shí)現(xiàn)的 SCM 修訂版的字符串。

platform.python_version()?

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

請(qǐng)注意此返回值不同于 Python sys.version,它將總是包括 patchlevel (默認(rèn)為 0)。

platform.python_version_tuple()?

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

請(qǐng)注意此返回值不同于 Python sys.version,它將總是包括 patchlevel (默認(rèn)為 '0')。

platform.release()?

返回系統(tǒng)的發(fā)布版本,例如 '2.2.0''NT',如果該值無(wú)法確定則將返回一個(gè)空字符串。

platform.system()?

返回系統(tǒng)平臺(tái)/OS的名稱,例如 'Linux', 'Darwin', 'Java', 'Windows'。 如果該值無(wú)法確定則將返回一個(gè)空字符串。

platform.system_alias(system, release, version)?

返回別名為某些系統(tǒng)所使用的常見營(yíng)銷名稱的 (system, release, version)。 它還會(huì)在可能導(dǎo)致混淆的情況下對(duì)信息進(jìn)行一些重排序操作。

platform.version()?

返回系統(tǒng)的發(fā)布版本信息,例如 '#3 on degas'。 如果該值無(wú)法確定則將返回一個(gè)空字符串。

platform.uname()?

具有高可移植性的 uname 接口。 返回包含六個(gè)屬性的 namedtuple(): system, node, release, version, machineprocessor。

請(qǐng)注意此函數(shù)添加的第六個(gè)屬性 (processor) 并不存在于 os.uname() 的結(jié)果中。 并且前兩個(gè)屬性的屬性名稱也不一致;os.uname() 是將它們稱為 sysnamenodename。

無(wú)法確定的條目會(huì)被設(shè)為 ''。

在 3.3 版更改: 將結(jié)果從元組改為命名元組。

Java平臺(tái)?

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

Jython的版本接口

返回一個(gè)元組 (release, vendor, vminfo, osinfo),其中 vminfo 為元組 (vm_name, vm_release, vm_vendor)osinfo 為元組 (os_name, os_version, os_arch)。 無(wú)法確定的值將設(shè)為由形參所給出的默認(rèn)值 (默認(rèn)均為 '')。

Windows平臺(tái)?

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

從 Windows 注冊(cè)表獲取額外的版本信息并返回一個(gè)元組 (release, version, csd, ptype) 表示 OS 發(fā)行版, 版本號(hào), CSD 級(jí)別 (Service Pack) 和 OS 類型 (多個(gè)/單個(gè)處理器)。

一點(diǎn)提示: ptype 在單個(gè)處理器的 NT 機(jī)器上為 'Uniprocessor Free' 而在多個(gè)處理器的機(jī)器上為 'Multiprocessor Free'。 'Free' 是指該 OS 版本沒(méi)有調(diào)試代碼。 它還可能顯示 'Checked' 表示該 OS 版本使用了調(diào)試代碼,即檢測(cè)參數(shù)、范圍等的代碼。

注解

此函數(shù)在安裝了 Mark Hammond 的 win32all 包并且為 Python 2.3 或更新版本上效果最佳(此支持是在 Python 2.6 中增加的)。 顯然它只能在兼容 Win32 的平臺(tái)上運(yùn)行。

Win95/98 specific?

platform.popen(cmd, mode='r', bufsize=-1)?

Portable popen() interface. Find a working popen implementation preferring win32pipe.popen(). On Windows NT, win32pipe.popen() should work; on Windows 9x it hangs due to bugs in the MS C library.

3.3 版后已移除: This function is obsolete. Use the subprocess module. Check especially the 使用 subprocess 模塊替換舊函數(shù) section.

Mac OS平臺(tái)?

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

獲取 Mac OS 版本信息并將其返回為元組 (release, versioninfo, machine),其中 versioninfo 是一個(gè)元組 (version, dev_stage, non_release_version)。

無(wú)法確定的條目會(huì)被設(shè)為 ''。 所有元組條目均為字符串。

Unix 平臺(tái)?

platform.dist(distname='', version='', id='', supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...))?

這是 linux_distribution() 的另外一個(gè)名字。

Deprecated since version 3.5, will be removed in version 3.8: See alternative like the distro package.

platform.linux_distribution(distname='', version='', id='', supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...), full_distribution_name=1)?

Tries to determine the name of the Linux OS distribution name.

supported_dists may be given to define the set of Linux distributions to look for. It defaults to a list of currently supported Linux distributions identified by their release file name.

If full_distribution_name is true (default), the full distribution read from the OS is returned. Otherwise the short name taken from supported_dists is used.

Returns a tuple (distname,version,id) which defaults to the args given as parameters. id is the item in parentheses after the version number. It is usually the version codename.

Deprecated since version 3.5, will be removed in version 3.8: See alternative like the distro package.

platform.libc_ver(executable=sys.executable, lib='', version='', chunksize=16384)?

嘗試確定可執(zhí)行文件(默認(rèn)為 Python 解釋器)所鏈接到的 libc 版本。 返回一個(gè)字符串元組 (lib, version),當(dāng)查找失敗時(shí)其默認(rèn)值將設(shè)為給定的形參值。

請(qǐng)注意此函數(shù)對(duì)于不同 libc 版本向可執(zhí)行文件添加符號(hào)的方式有深層的關(guān)聯(lián),可能僅適用于使用 gcc 編譯出來(lái)的可執(zhí)行文件。

文件將按 chunksize 個(gè)字節(jié)的分塊來(lái)讀取和掃描。