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