web-dev-qa-db-fra.com

Comment vérifier le système d'exploitation en Python?

Je souhaite vérifier le système d'exploitation (sur l'ordinateur sur lequel le script est exécuté).

Je sais que je peux utiliser os.system('uname -o') sous Linux, mais cela me donne un message dans la console et je veux écrire dans une variable.

Ce sera bien si le script peut dire s'il s'agit d'un Mac, Windows ou Linux. Comment puis-je le vérifier?

119
kolek

Vous pouvez utiliser sys.platform :

from sys import platform
if platform == "linux" or platform == "linux2":
    # linux
Elif platform == "darwin":
    # OS X
Elif platform == "win32":
    # Windows...

sys.platform a une granularité plus fine que sys.name.

Pour les valeurs valides, consultez la documentation .

240
the wolf

Vous pouvez avoir une idée assez grossière du système d'exploitation que vous utilisez en cochant sys.platform .

Une fois que vous avez ces informations, vous pouvez les utiliser pour déterminer si appeler quelque chose comme os.uname() est approprié pour collecter des informations plus spécifiques. Vous pouvez également utiliser quelque chose comme Informations système Python sur un système d'exploitation de type Unix, ou pywin32 pour Windows.

Il existe également psutil si vous souhaitez effectuer une inspection plus approfondie sans vous soucier du système d'exploitation.

15
Nick Bastin

Si vous voulez savoir sur quelle plate-forme vous êtes: "Linux", "Windows" ou "Darwin" (Mac) sans plus de précision, vous devez utiliser:

>>> import platform
>>> platform.system()
'Linux'  # or 'Windows'/'Darwin'

Le platform.system fonction utilise uname en interne.

15
Laurent LAPORTE

Des informations plus détaillées sont disponibles dans le platform module .

7
Sven Marnach

Vous pouvez utiliser sys.platform .

3
Ondrej Slinták