哪個Python版本?
當(dāng)我提及Python,所指的就是CPython 2(準(zhǔn)確的是2.7).我會顯式提醒那些相同的代碼在CPython 3 (3.3)上是不工作的,以及提供一份解釋不同之處的備選代碼。請確保你已經(jīng)安裝了CPython,在終端上輸入python或者python3回車,然后你在終端上應(yīng)該能看到python的提示符(prompt)。
請注意,所有的程序在它們第一行都是#!/usr/bin/env/python,也就是說,我們想要Python的解釋器來執(zhí)行這些腳本。因此,如果你想你的腳本具有執(zhí)行性,請使用chmod +x your-script.py, 那么你就可以使用./your-script.py來執(zhí)行它了(在本文中你將會看到這種方式)
探索platform模塊
platform模塊在標(biāo)準(zhǔn)庫中,它有很多運(yùn)行我們獲得眾多系統(tǒng)信息的函數(shù)。讓我們運(yùn)行Python解釋器來探索它們中的一些函數(shù),那就從platform.uname()函數(shù)開始吧:
>>> import platform >>> platform.uname() ('Linux', 'fedora.echorand', '3.7.4-204.fc18.x86_64', '#1 SMP Wed Jan 23 16:44:29 UTC 2013', 'x86_64')
如果你已知道linux上的uname命令,那么你就會認(rèn)出來這個函數(shù)就是這個命令的一個接口。在Python 2上,它會返回一個包含系統(tǒng)類型(或者內(nèi)核版本),主機(jī)名,版本,發(fā)布版本,機(jī)器的硬件以及處理器信息元組(tuple)。你可以使用下標(biāo)訪問個別屬性,像這樣:
>>> platform.uname()[0]'Linux'
在Python 3上,這個函數(shù)返回的是一個命名元組:
>>> platform.uname()uname_result(system='Linux', node='fedora.echorand',release='3.7.4-204.fc18.x86_64', version='#1 SMP Wed Jan 23 16:44:29UTC 2013', machine='x86_64', processor='x86_64')
因為返回結(jié)果是一個命名元組,這就可以簡單地通過名字來指定特定的屬性,而不是必須記住下標(biāo),像這樣:
>>> platform.uname().system
'Linux'
platform模塊還有一些上面屬性的直接接口,像這樣:
>>> platform.system()
'Linux'
>>> platform.release()
'3.7.4-204.fc18.x86_64'
linux_distribution()函數(shù)返回的有關(guān)你所在的linux發(fā)布版本的詳細(xì)信息。例如,在Fedora 18系統(tǒng)上,這個命令會返回如下信息:
>>> platform.linux_distribution()
('Fedora', '18', 'Spherical Cow')
這個返回結(jié)果中包含了版本發(fā)布名,版本以及代號元組。特定的Python版本支持的發(fā)布版本上可以通過_supported_dists顯示的值獲得。
>>> platform._supported_dists('SuSE', 'debian', 'fedora', 'redhat', 'centos', 'mandrake','mandriva', 'rocks', 'slackware', 'yellowdog', 'gentoo','UnitedLinux', 'turbolinux')
如果你的linux發(fā)布版本不在其中(或者其中之一的衍生發(fā)行版)。那么你很可能調(diào)用了上面這個函數(shù)而看不到任何有用的信息。
新聞熱點(diǎn)
疑難解答
圖片精選