Hasta donde yo sé, Python tiene 3 formas de averiguar en qué sistema operativo se está ejecutando:
os.namesys.platformplatform.system()
Conocer esta información suele ser útil en importaciones condicionales o en el uso de funciones que difieren entre plataformas (por ejemplo, time.clock()en Windows frente a time.time()en UNIX).
Mi pregunta es, ¿por qué 3 formas diferentes de hacer esto? ¿Cuándo se debe utilizar una forma y no otra? ¿Cuál es la "mejor" (la más preparada para el futuro o la que es menos probable que excluya accidentalmente un sistema en particular en el que su programa puede ejecutarse)?
Parece que sys.platformes más específico que os.name, lo que le permite distinguir win32de cygwin(en oposición a solo nt) y linux2de darwin(en oposición a solo posix). Pero si es así, ¿qué pasa con la diferencia entre sys.platformy platform.system()?
Por ejemplo, cuál es mejor, esto:
import sys
if sys.platform == 'linux2':
# Do Linux-specific stuff
¿o esto? :
import platform
if platform.system() == 'Linux':
# Do Linux-specific stuff
Por ahora me atendré sys.platform, por lo que esta pregunta no es particularmente urgente, pero estaría muy agradecido por alguna aclaración al respecto.
sys.platform.startswith('linux')lugar desys.platform == 'linux2'para compatibilidad futura