El mòdul de plataforma de biblioteca estàndard s’utilitza per obtenir informació sobre el sistema operatiu en què s’executa Python i la seva versió (versió). Mitjançant aquest mòdul, és possible canviar el procés per a cada SO i versió.
Aquí es proporciona la informació següent.
- Obteniu el nom del sistema operatiu:
platform.system()
- Obteniu informació sobre la versió (versió):
platform.release()
,version()
- Obteniu el sistema operatiu i la versió alhora:
platform.platform()
- Exemples de resultats per a cada SO
- macOS
- Windows
- Ubuntu
- Codi de mostra per canviar el processament segons el sistema operatiu
Si voleu conèixer la versió de Python que esteu executant, consulteu l’article següent.
- Articles relacionats:Comproveu i mostreu la versió de Python (per exemple, sys.version)
Tot el codi de mostra de la primera meitat s’executa a macOS Mojave 10.14.2; exemples de resultats a Windows i Ubuntu es mostren a la segona meitat; Les funcions específiques del sistema operatiu també es discuteixen a la segona meitat.
- Obteniu el nom del sistema operatiu: platform.system ()
- Obteniu informació sobre la versió (versió): platform.release (), version ()
- Obteniu el sistema operatiu i la versió alhora: platform.platform ()
- Exemples de resultats per a cada SO
- Codi de mostra per canviar el processament segons el sistema operatiu
Obteniu el nom del sistema operatiu: platform.system ()
El nom del sistema operatiu l’obté platform.system (). El valor de retorn és una cadena.
import platform
print(platform.system())
# Darwin
Obteniu informació sobre la versió (versió): platform.release (), version ()
La informació sobre la versió del sistema operatiu (versió) s’obté amb les funcions següents. En ambdós casos, el valor de retorn és una cadena.
platform.release()
platform.version()
Com es mostra a l’exemple següent, platform.release () retorna continguts més senzills.
print(platform.release())
# 18.2.0
print(platform.version())
# Darwin Kernel Version 18.2.0: Mon Nov 12 20:24:46 PST 2018; root:xnu-4903.231.4~2/RELEASE_X86_64
Obteniu el sistema operatiu i la versió alhora: platform.platform ()
El nom del sistema operatiu i la informació sobre la versió (versió) es poden obtenir junts mitjançant platform.platform (). El valor de retorn és una cadena.
print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit
Si el valor de l’argument terse és TRUE, només es retornarà la informació mínima.
print(platform.platform(terse=True))
# Darwin-18.2.0
També hi ha un argument aliased.
print(platform.platform(aliased=True))
# Darwin-18.2.0-x86_64-i386-64bit
El resultat és el mateix a l’entorn d’exemple, però alguns sistemes operatius retornaran un àlies com a nom del sistema operatiu.
Si aliased és cert, torna el resultat mitjançant un àlies en lloc del nom comú del sistema. Per exemple, SunOS es converteix en Solaris.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation
Exemples de resultats per a cada SO
Es mostraran exemples de resultats a macOS, Windows i Ubuntu, així com funcions específiques del sistema operatiu.
macOS
Exemple del resultat a macOS Mojave 10.14.2. Igual que l’exemple mostrat anteriorment.
print(platform.system())
# Darwin
print(platform.release())
# 18.2.0
print(platform.version())
# Darwin Kernel Version 18.2.0: Mon Nov 12 20:24:46 PST 2018; root:xnu-4903.231.4~2/RELEASE_X86_64
print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit
Tingueu en compte que és Darwin, no macOS ni Mojave.
Per obtenir més informació sobre Darwin, consulteu la pàgina de Viquipèdia. També hi ha una descripció de la correspondència entre el número de versió més recent i el nom a macOS.
Hi ha una funció específica de madOS anomenada platform.mac_ver ().
El valor retornat es torna com a tupla (release, versioninfo, machine).
A l’entorn d’exemple, versioninfo és desconeguda i és una tupla de cadena buida.
print(platform.mac_ver())
# ('10.14.2', ('', '', ''), 'x86_64')
Windows
Exemple de resultats a Windows 10 Home.
print(platform.system())
# Windows
print(platform.release())
# 10
print(platform.version())
# 10.0.17763
print(platform.platform())
# Windows-10-10.0.17763-SP0
Tingueu en compte que el valor de retorn 10 de platform.release () és una cadena, no un enter.
Hi ha una funció específica de Windows anomenada platform.win32_ver ().
El valor retornat es torna com a tupla (versió, versió, csd, ptype).
csd indica l’estat del paquet de serveis.
print(platform.win32_ver())
# ('10', '10.0.17763', 'SP0', 'Multiprocessor Free')
Ubuntu
Exemple del resultat a Ubuntu 18.04.1 LTS.
print(platform.system())
# Linux
print(platform.release())
# 4.15.0-42-generic
print(platform.version())
# #45-Ubuntu SMP Thu Nov 15 19:32:57 UTC 2018
print(platform.platform())
# Linux-4.15.0-44-generic-x86_64-with-Ubuntu-18.04-bionic
Hi ha una funció específica per Unix platform.linux_distribution ().
El valor retornat es torna com a tupla (nomdistricció, versió, identificador).
print(platform.linux_distribution())
# ('Ubuntu', '18.04', 'bionic')
Tingueu en compte que platform.linux_distribution () s’ha eliminat a Python 3.8. Es recomana utilitzar la distribució de la biblioteca de tercers, que s’ha d’instal·lar per separat amb pip.
Codi de mostra per canviar el processament segons el sistema operatiu
Si voleu canviar la funció o mètode que s’utilitzarà en funció del sistema operatiu, podeu utilitzar un mètode com ara platform.system () per determinar el valor.
El següent és un exemple d’obtenció de la data de creació d’un fitxer.
def creation_date(path_to_file):
"""
Try to get the date that a file was created, falling back to when it was
last modified if that isn't possible.
See http://stackoverflow.com/a/39501288/1709587 for explanation.
"""
if platform.system() == 'Windows':
return os.path.getctime(path_to_file)
else:
stat = os.stat(path_to_file)
try:
return stat.st_birthtime
except AttributeError:
# We're probably on Linux. No easy way to get creation dates here,
# so we'll settle for when its content was last modified.
return stat.st_mtime
En aquest exemple, primer s’utilitza el valor de platform.system () per determinar si es tracta de Windows o d’altres.
A continuació, utilitza la gestió d’excepcions per canviar el procés entre el cas en què existeix l’atribut st_birthtime i els altres casos.