platform --- 獲取底層平臺的標識數據?
示例代碼: Lib/platform.py
注解
特定平臺按字母順序排列,Linux 包括在 Unix 小節之中。
跨平臺?
-
platform.architecture(executable=sys.executable, bits='', linkage='')? 查詢給定的可執行文件(默認為 Python 解釋器二進制碼文件)來獲取各種架構信息。
返回一個元素
(bits, linkage),其中包含可執行文件所使用的位架構和鏈接格式信息。 這兩個值均以字符串形式返回。無法確定的值將返回為形參預設所給出的值。 如果給出的位數為
'',則會使用sizeof(pointer)(或者當 Python 版本 < 1.5.2 時為sizeof(long)) 作為所支持的指針大小的提示。此函數依賴于系統的
file命令來執行實際的操作。 這在幾乎所有 Unix 平臺和某些非 Unix 平臺上只有當可執行文件指向 Python 解釋器時才可用。 當以上要求不滿足時將會使用合理的默認值。注解
在 Mac OS X(也許還有其他平臺)上,可執行文件可能是包含多種架構的通用文件。
要獲取當前解釋器的“64 位性”,更可靠的做法是查詢
sys.maxsize屬性:is_64bits = sys.maxsize > 2**32
-
platform.machine()? 返回機器類型,例如
'i386'。 如果該值無法確定則會返回一個空字符串。
-
platform.node()? 返回計算機的網絡名稱(可能不是完整限定名稱?。?。 如果該值無法確定則會返回一個空字符串。
-
platform.platform(aliased=0, terse=0)? 返回一個標識底層平臺的字符串,其中帶有盡可能多的有用信息。
輸出信息的目標是“人類易讀”而非機器易解析。 它在不同平臺上可能看起來不一致,這是有意為之的。
如果 aliased 為真值,此函數將使用各種平臺不同與其通常名稱的別名來報告系統名稱,例如 SunOS 將被報告為 Solaris。
system_alias()函數將被用于實現此功能。將 terse 設為真值將導致此函數只返回標識平臺所必須的最小量信息。
-
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(system, release, version)? 返回別名為某些系統所使用的常見營銷名稱的
(system, release, version)。 它還會在可能導致混淆的情況下對信息進行一些重排序操作。
-
platform.version()? 返回系統的發布版本信息,例如
'#3 on degas'。 如果該值無法確定則將返回一個空字符串。
-
platform.uname()? 具有高可移植性的 uname 接口。 返回包含六個屬性的
namedtuple():system,node,release,version,machine和processor。請注意此函數添加的第六個屬性 (
processor) 并不存在于os.uname()的結果中。 并且前兩個屬性的屬性名稱也不一致;os.uname()是將它們稱為sysname和nodename。無法確定的條目會被設為
''。在 3.3 版更改: 將結果從元組改為命名元組。
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 版本使用了調試代碼,即檢測參數、范圍等的代碼。注解
此函數在安裝了 Mark Hammond 的
win32all包并且為 Python 2.3 或更新版本上效果最佳(此支持是在 Python 2.6 中增加的)。 顯然它只能在兼容 Win32 的平臺上運行。
Win95/98 specific?
-
platform.popen(cmd, mode='r', bufsize=-1)? Portable
popen()interface. Find a working popen implementation preferringwin32pipe.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
subprocessmodule. Check especially the 使用 subprocess 模塊替換舊函數 section.
Mac OS平臺?
-
platform.mac_ver(release='', versioninfo=('', '', ''), machine='')? 獲取 Mac OS 版本信息并將其返回為元組
(release, versioninfo, machine),其中 versioninfo 是一個元組(version, dev_stage, non_release_version)。無法確定的條目會被設為
''。 所有元組條目均為字符串。
Unix 平臺?
-
platform.dist(distname='', version='', id='', supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...))? 這是
linux_distribution()的另外一個名字。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_distsmay 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_nameis true (default), the full distribution read from the OS is returned. Otherwise the short name taken fromsupported_distsis used.Returns a tuple
(distname,version,id)which defaults to the args given as parameters.idis 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)? 嘗試確定可執行文件(默認為 Python 解釋器)所鏈接到的 libc 版本。 返回一個字符串元組
(lib, version),當查找失敗時其默認值將設為給定的形參值。請注意此函數對于不同 libc 版本向可執行文件添加符號的方式有深層的關聯,可能僅適用于使用 gcc 編譯出來的可執行文件。
文件將按 chunksize 個字節的分塊來讀取和掃描。
