Autant que je sache, Python a 3 façons de découvrir ce système d'exploitation est en cours d'exécution sur:
os.name
sys.platform
platform.system()
Sachant cette information est souvent utile dans conditionnelle des importations, ou à l'aide de la fonctionnalité qui diffère entre les plates-formes (par exemple, time.clock()
sur Windows c. s. time.time()
sur UNIX).
Ma question est, pourquoi les 3 façons différentes de le faire? Quand faut-il moyen d'être utilisé et pas un autre? Qui est le "meilleur" (plus d'avenir ou les moins susceptibles de accidentellement exclure un particulier système de votre programme peut s'exécuter sur)?
Il semble que l' sys.platform
plus précis que l' os.name
, vous permettant de distinguer win32
de cygwin
(contre seulement nt
), et linux2
de darwin
(contre seulement posix
). Mais si c'est le cas, que ce sujet de la différence entre sys.platform
et platform.system()
?
Par exemple, ce qui est mieux, c':
import sys
if sys.platform == 'linux2':
# Do Linux-specific stuff
ou cela? :
import platform
if platform.system() == 'Linux':
# Do Linux-specific stuff
Pour l'instant je vais adhérer sys.platform
, de sorte que cette question n'est pas particulièrement urgent, mais je serais très reconnaissant à apporter quelques éclaircissements à ce sujet.