在實際專案中有時候不知道作業系統的型別,比如是windows、os x、*unix?而python**雖說是跨平台(crossplatform)的,但是畢竟他們還是有些不同的,有的函式方法只能在某些作業系統下實現,這時考慮到程式的可移植性,需要在**中對當前所在的作業系統做乙個判斷。
如果只想判斷作業系統的型別,可呼叫sys
庫中的platform
屬性:sys.platform
。它能返回簡單的屬性:作業系統型別(windows?linux?還是其他)。例如,在windwos 10 64位系統下python2的直譯器中執行,顯示結果win32
;python3的直譯器中執行,顯示結果也為win32
。windows 7 64位系統下顯示結果同win10。debian 9(乙個linux的發行版)下python2的顯示結果為linux2
,python3的顯示結果為linux
。這說明我們可以用win32
這個返回值來判斷當前系統是windwos,返回linux
則說明是linux系統。(由於手上沒有windows 32位版本的系統,故沒有測試在它們上門的執行結果,猜測也差不多;另外十分好奇linux python2返回的結果中為什麼會有乙個2……)
還有一種方法是呼叫os
庫中的name
屬性:os.name
。它的返回值有兩種:nt
和posix
。其中,nt
表示windwos系作業系統,posix
代表類unix或os x系統。
那如果我們想要知道更詳細的資訊呢?想要更詳細的區分?這時候就要用到platform
庫了。
platform.system
方法會返回當前作業系統的型別,windows?linux?os x?unix?freebsd?它能比較詳細的區分。(其他的一般只能識別windows和非windwos)
platform.release
方法會返回當前作業系統的版本。筆者的測試環境是windows 10 64位,它返回的結果是10
。(python2和python3都一樣)。相應的,如果是windows 7,則會返回7
;windows xp則返回xp
。有點特殊的是對於linux發行版,它返回的是核心(kernel)的版本號。這點要注意。
platform.version
方法返回的則是當前系統的版本號,這個就不細說了。
platform.machine
方法返回的是系統的結構,64位or32位。
platform.uname
方法返回乙個元組,裡面包含了當前作業系統的更詳細的資訊,方便呼叫。
#!/bin/python
#import platform
def testplatform():
print ("----------operation system--------------------------")
#windows will be : (32bit, windowspe)
#linux will be : (32bit, elf)
print(platform.architecture())
#windows will be : windows-xp-5.1.2600-sp3 or windows-post2008server-6.1.7600
#linux will be : linux-2.6.18-128.el5-i686-with-redhat-5.3-final
print(platform.platform())
#windows will be : windows
#linux will be : linux
print(platform.system())
print ("--------------python version-------------------------")
#windows and linux will be : 3.1.1 or 3.1.3
print(platform.python_version())
def useplatform():
sysstr = platform.system()
if(sysstr =="windows"):
print ("call windows tasks")
elif(sysstr == "linux"):
print ("call linux tasks")
else:
print ("other system tasks")
useplatform()
python判斷作業系統型別
經常地我們需要編寫跨平台的指令碼,但是由於不同的平台的差異性,我們不得不獲得當前所工作的平台 作業系統型別 如下 import platform deftestplatform print operation system windows will be 32bit,windowspe linux ...
python例項 判斷作業系統型別
參考文獻 經常地我們需要編寫跨平台的指令碼,但是由於不同的平台的差異性,我們不得不獲得當前所工作的平台 作業系統型別 import platform deftestplatform print operation system windows will be 32bit,windowspe linu...
C 判斷作業系統型別總結
目錄 windows作業系統的版本號一覽 作業系統 platformid 主版本號 副版本號 windows9514 0windows9814 10windowsme14 90windowsnt3.523 0windowsnt4.024 0windows200025 0windowsxp25 1wi...