Je veux vérifier le système d'exploitation (sur l'ordinateur sur lequel le script s'exécute).
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 ne sera pas grave si le script peut dire s'il s'agit de Mac, Windows ou Linux. Comment puis-je le vérifier?
python
linux
operating-system
Kolek
la source
la source
Réponses:
Vous pouvez utiliser
sys.platform
:sys.platform
a une granularité plus fine quesys.name
.Pour les valeurs valides, consultez la documentation .
Consultez également la réponse à la question «Sur quel système d'exploitation est-ce que j'exécute?»
la source
"cygwin"
ne retourne pas"win32"
comme on pourrait s'y attendre."linux2"
n'est plus une valeur possible deplatform
(voir la documentation liée pour corroboration) et donc si vous n'avez besoin que de prendre en charge Python 3.3 et versions ultérieures, vous pouvez supprimer en toute sécurité la clause `or platform ==" linux2 "` de la première condition.Si vous voulez savoir sur quelle plateforme vous vous trouvez en dehors de "Linux", "Windows" ou "Darwin" (Mac), sans plus de précision, vous devez utiliser:
La
platform.system
fonction utilise enuname
interne.la source
Linux
,Windows
,Java
ou une chaîne vide. devdocs.io/python~3.7/library/platform#platform.systemVous pouvez avoir une idée assez grossière du système d'exploitation que vous utilisez en vérifiant
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 recueillir des informations plus spécifiques. Vous pouvez également utiliser quelque chose comme les informations système Python sur les systèmes 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.
la source
Des informations plus détaillées sont disponibles dans le
platform
module .la source
platform
module a- t- il un avantagesys.platform
? Quand voudrais-je utiliser quelle approche?platform
module. Cliquez simplement sur le lien pour la documentation.Vous pouvez utiliser
sys.platform
.la source