¿Cómo compruebo el sistema operativo en Python?

3 minutos de lectura

avatar de usuario
kolek

Quiero verificar el sistema operativo (en la computadora donde se ejecuta el script).

Sé que puedo usar os.system('uname -o') en Linux, pero me da un mensaje en la consola y quiero escribir en una variable.

Estará bien si el script puede decir si es Mac, Windows o Linux. ¿Cómo puedo comprobarlo?

  • posible duplicado de ¿Cómo puedo saber en qué sistema operativo estoy ejecutando desde Python?

    – BoltClock

    22 de noviembre de 2011 a las 9:52

  • Posible duplicado de Python: ¿En qué sistema operativo estoy ejecutando?

    – TylerH

    24 de febrero de 2019 a las 16:43

avatar de usuario
el lobo

Puedes usar sys.platform:

from sys import platform
if platform == "linux" or platform == "linux2":
    # linux
elif platform == "darwin":
    # OS X
elif platform == "win32":
    # Windows...

sys.platform tiene una granularidad más fina que sys.name.

Para los valores válidos consultar la documentación.

Consulte también la respuesta a “¿En qué sistema operativo estoy ejecutando?”

  • Tenga en cuenta que en cygwin, devuelve "cygwin" no "win32" como alguien podría esperar.

    – Michael Bentkowski

    22 de noviembre de 2011 a las 11:03

  • Gracias. ¿Cuál es la diferencia entre linux y linux2?

    – Tharindu Rusira

    5 de septiembre de 2013 a las 2:03

  • ¿Cuál sería la salida para BSD?

    – galois

    28 de marzo de 2015 a las 9:00

  • Tenga en cuenta que desde Python 3.3, "linux2" ya no es un valor posible de platform (consulte los documentos vinculados para corroborar) y, por lo tanto, si solo necesita admitir Python 3.3 y versiones posteriores, puede eliminar de forma segura la cláusula `o plataforma == “linux2″` de la primera condición.

    –Mark Amery

    3 de enero de 2020 a las 18:28


  • @ohailolcat, por compatibilidad con versiones anteriores. Probablemente nunca cambie. Consulte el parche original que lo definió de esta manera para obtener más información: mail.python.org/pipermail/patches/2000-May/000648.html

    – colineador

    11 de febrero de 2021 a las 21:51


avatar de usuario
laurent laporte

Si quieres saber en qué plataforma estás fuera de “Linux”, “Windows” o “Darwin” (Mac), sin más precisión, debes utilizar:

>>> import platform
>>> platform.system()
'Linux'  # or 'Windows"https://stackoverflow.com/"Darwin'

los platform.system usos de funciones uname internamente.

  • Me gusta esta solución, pero quiero señalar que de los documentos dice que volverá Linux, Windows, Java o una cadena vacía.devdocs.io/python~3.7/library/platform#platform.system

    – Brandon Benefield

    5 de septiembre de 2018 a las 4:18

  • @BrandonBenefield, la enumeración es un ejemplo de valores posibles. En dispositivos Apple, devuelve “Darwin”.

    – Laurent LAPORTE

    5 de septiembre de 2018 a las 4:30

avatar de usuario
Nick Bastin

Puede obtener una idea bastante aproximada del sistema operativo que está utilizando comprobando sys.platform.

Una vez que tenga esa información, puede usarla para determinar si llamar a algo como os.uname() es apropiado para recopilar información más específica. También podrías usar algo como Información del sistema Python en sistemas operativos tipo Unix, o pywin32 para ventanas.

También hay psutil si desea realizar una inspección más profunda sin querer preocuparse por el sistema operativo.

Información más detallada está disponible en el platform módulo.

Puedes usar sys.platform.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad