python 判斷作業系統型別

2021-10-24 04:45:35 字數 2482 閱讀 6398

在實際專案中有時候不知道作業系統的型別,比如是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。它的返回值有兩種:ntposix。其中,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...