Pour autant que je sache, Python a 3 façons de savoir sur quel système d'exploitation fonctionne:
os.namesys.platformplatform.system()
Connaître ces informations est souvent utile dans les importations conditionnelles, ou en utilisant des fonctionnalités qui diffèrent entre les plates-formes (par exemple time.clock()sous Windows et time.time()sous UNIX).
Ma question est, pourquoi 3 façons différentes de faire cela? Quand faut-il utiliser un moyen et pas un autre? Quelle est la «meilleure» méthode (la plus à l'épreuve du temps ou la moins susceptible d'exclure accidentellement un système particulier sur lequel votre programme peut réellement fonctionner)?
Il semble que ce sys.platformsoit plus spécifique que os.name, vous permettant de distinguer win32de cygwin(par opposition à juste nt) et linux2de darwin(par opposition à juste posix). Mais si tel est le cas, qu'en est-il de la différence entre sys.platformet platform.system()?
Par exemple, ce qui est mieux, ceci:
import sys
if sys.platform == 'linux2':
# Do Linux-specific stuff
ou ca? :
import platform
if platform.system() == 'Linux':
# Do Linux-specific stuff
Pour l'instant, je sys.platformm'en tiendrai, donc cette question n'est pas particulièrement urgente, mais je serais très reconnaissant d'avoir des éclaircissements à ce sujet.
sys.platform.startswith('linux')au lieu desys.platform == 'linux2'pour une compatibilité future