Question Python: Sur quel OS je cours?


Que dois-je regarder pour voir si je suis sous Windows, Unix, etc?


422
2017-08-05 03:23


origine


Réponses:


>>> import os
>>> print os.name
posix
>>> import platform
>>> platform.system()
'Linux'
>>> platform.release()
'2.6.22-15-generic'

La sortie de platform.system() est comme suit:

  • Linux: Linux
  • Mac: Darwin
  • Les fenêtres: Windows

Voir: platform - Accès aux données d'identification de la plateforme sous-jacente


534
2017-08-05 03:27



Dang-lbrandy m'a battu au punch, mais cela ne signifie pas que je ne peux pas vous fournir les résultats du système pour Vista!

>>> import os
>>> os.name
'nt'
>>> import platform
>>> platform.system()
'Windows'
>>> platform.release()
'Vista'

... et je ne peux pas croire que personne n'en a posté un pour Windows 10:

>>> import os
>>> os.name
'nt'
>>> import platform
>>> platform.system()
'Windows'
>>> platform.release()
'10'

151
2017-08-05 03:57



Pour le compte rendu, voici les résultats sur Mac:

>>> import os
>>> os.name
'posix'
>>> import platform
>>> platform.system()
'Darwin'
>>> platform.release()
'8.11.1'

109
2017-08-05 04:13



Exemple de code pour différencier les systèmes d'exploitation en utilisant python:

from sys import platform as _platform

if _platform == "linux" or _platform == "linux2":
   # linux
elif _platform == "darwin":
   # MAC OS X
elif _platform == "win32":
   # Windows
elif _platform == "win64":
    # Windows 64-bit

75
2017-09-16 07:42



Vous pouvez également utiliser sys.platform si vous avez déjà importé sys et que vous ne voulez pas importer un autre module

>>> import sys
>>> sys.platform
'linux2'

36
2017-08-26 15:41



Si vous voulez des données lisibles par l'utilisateur mais toujours détaillées, vous pouvez utiliser platform.platform () 

>>> import platform
>>> platform.platform()
'Linux-3.3.0-8.fc16.x86_64-x86_64-with-fedora-16-Verne'

Voici quelques appels possibles que vous pouvez faire pour identifier votre position

import platform
import sys

def linux_distribution():
  try:
    return platform.linux_distribution()
  except:
    return "N/A"

print("""Python version: %s
dist: %s
linux_distribution: %s
system: %s
machine: %s
platform: %s
uname: %s
version: %s
mac_ver: %s
""" % (
sys.version.split('\n'),
str(platform.dist()),
linux_distribution(),
platform.system(),
platform.machine(),
platform.platform(),
platform.uname(),
platform.version(),
platform.mac_ver(),
))

Les sorties de ce script sur différents systèmes sont disponibles ici: https://github.com/hpcugent/easybuild/wiki/OS_flavor_name_version


25
2018-01-23 10:55



je fais ça

import sys
print sys.platform

Docs ici: sys.platform.

Tout ce dont vous avez besoin est probablement dans le module sys.


18
2018-02-16 14:43



J'utilise l'outil WLST fourni avec weblogic, et il n'implémente pas le package de plate-forme.

wls:/offline> import os
wls:/offline> print os.name
java 
wls:/offline> import sys
wls:/offline> print sys.platform
'java1.5.0_11'

En dehors de patcher le système javaos.py (problème avec os.system () sur Windows 2003 avec jdk1.5) (que je ne peux pas faire, je dois utiliser weblogic par défaut), c'est ce que j'utilise:

def iswindows():
  os = java.lang.System.getProperty( "os.name" )
  return "win" in os.lower()

11
2018-06-11 07:37