Le module platform de la bibliothèque standard est utilisé pour obtenir des informations sur le système d'exploitation sur lequel Python est exécuté et sa version (release). En utilisant ce module, il est possible de basculer le processus pour chaque OS et version.
Les informations suivantes sont fournies ici.
- Obtenir le nom du système d'exploitation :
platform.system()
- Obtenir des informations sur la version (release) :
platform.release()
,version()
- Obtenez le système d'exploitation et la version en une seule fois :
platform.platform()
- Exemples de résultats pour chaque OS
- macOS
- Windows
- Ubuntu
- Exemple de code pour changer de traitement en fonction du système d'exploitation
Si vous souhaitez connaître la version de Python que vous utilisez, consultez l'article suivant.
- Articles connexes :Vérifier et afficher la version de Python (e.g. sys.version)
Tous les exemples de code de la première moitié sont exécutés sous macOS Mojave 10.14.2 ; des exemples de résultats sous Windows et Ubuntu sont présentés dans la seconde moitié ; les fonctions spécifiques aux systèmes d'exploitation sont également abordées dans la seconde moitié.
- Obtenir le nom du système d'exploitation : platform.system()
- Obtenir des informations sur la version (release) : platform.release(), version()
- Obtenir le système d'exploitation et la version en une seule fois : platform.platform()
- Exemples de résultats pour chaque OS
- Exemple de code pour changer de traitement en fonction du système d'exploitation
Obtenir le nom du système d'exploitation : platform.system()
Le nom du système d'exploitation est obtenu par platform.system(). La valeur de retour est une chaîne de caractères.
import platform
print(platform.system())
# Darwin
Obtenir des informations sur la version (release) : platform.release(), version()
Les informations sur la version du système d'exploitation (release) sont obtenues à l'aide des fonctions suivantes. Dans les deux cas, la valeur de retour est une chaîne de caractères.
platform.release()
platform.version()
Comme le montre l'exemple suivant, platform.release() renvoie un contenu plus simple.
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
Obtenir le système d'exploitation et la version en une seule fois : platform.platform()
Le nom du système d'exploitation et les informations sur la version (release) peuvent être obtenus ensemble en utilisant platform.platform(). La valeur de retour est une chaîne de caractères.
print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit
Si la valeur de l'argument terse est TRUE, seules des informations minimales seront retournées.
print(platform.platform(terse=True))
# Darwin-18.2.0
Il existe également un argument aliasé.
print(platform.platform(aliased=True))
# Darwin-18.2.0-x86_64-i386-64bit
Le résultat est le même dans l'environnement d'exemple, mais certains systèmes d'exploitation renverront un alias comme nom d'OS.
Si aliased est vrai, il renvoie le résultat en utilisant un alias au lieu du nom commun du système. Par exemple, SunOS devient Solaris.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation
Exemples de résultats pour chaque OS
Des exemples de résultats sur macOS, Windows et Ubuntu seront présentés, ainsi que des fonctions spécifiques à chaque système d'exploitation.
macOS
Exemple de résultat sur macOS Mojave 10.14.2. Identique à l'exemple ci-dessus.
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
Notez qu'il s'agit de Darwin, et non de macOS ou Mojave.
Pour plus d'informations sur Darwin, voir la page Wikipedia. Il existe également une description de la correspondance entre le dernier numéro de version et le nom dans macOS.
Il existe une fonction spécifique à madOS appelée platform.mac_ver().
La valeur de retour est renvoyée sous la forme d'un tuple (release, versioninfo, machine).
Dans l'environnement de l'exemple, versioninfo est inconnu et est un tuple de chaîne vide.
print(platform.mac_ver())
# ('10.14.2', ('', '', ''), 'x86_64')
Windows
Exemple de résultats sur 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
Notez que la valeur de retour 10 de platform.release() est une chaîne de caractères, et non un nombre entier.
Il existe une fonction spécifique à Windows appelée platform.win32_ver().
La valeur de retour est renvoyée sous la forme d'un tuple (release, version, csd, ptype).
csd indique l'état du Service Pack.
print(platform.win32_ver())
# ('10', '10.0.17763', 'SP0', 'Multiprocessor Free')
Ubuntu
Exemple de résultat sur 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
Il existe une fonction spécifique à Unix, platform.linux_distribution().
La valeur de retour est renvoyée sous la forme d'un tuple (distname, version, id).
print(platform.linux_distribution())
# ('Ubuntu', '18.04', 'bionic')
Notez que platform.linux_distribution() a été supprimé dans Python 3.8. Il est recommandé d'utiliser la bibliothèque distro d'une tierce partie à la place, qui doit être installée séparément en utilisant pip.
Exemple de code pour changer de traitement en fonction du système d'exploitation
Si vous voulez changer la fonction ou la méthode à utiliser en fonction du système d'exploitation, vous pouvez utiliser une méthode telle que platform.system() pour déterminer la valeur.
Voici un exemple d'obtention de la date de création d'un fichier.
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
Dans cet exemple, la valeur de platform.system() est d'abord utilisée pour déterminer s'il s'agit de Windows ou autre.
Ensuite, il utilise le traitement des exceptions pour basculer le processus entre le cas où l'attribut st_birthtime existe et les autres cas.