¿Cómo puedo encontrar el sistema operativo actual en Python? [duplicar]

Resuelto UnkwnTech asked hace 16 años • 5 respuestas

Como dice el título, ¿cómo puedo encontrar el sistema operativo actual en Python?

UnkwnTech avatar Sep 21 '08 13:09 UnkwnTech
Aceptado

Si desea datos legibles por el usuario pero aún detallados, puede usar platform.platform()

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

platformtambién tiene algunos otros métodos útiles:

>>> platform.system()
'Windows'
>>> platform.release()
'XP'
>>> platform.version()
'5.1.2600'

Aquí hay algunas llamadas posibles diferentes que puede realizar para identificar dónde se encuentra. linux_distribution y dist parecen haber desaparecido de las versiones recientes de Python, por lo que tienen una función contenedora aquí.

import platform
import sys

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

def dist():
  try:
    return platform.dist()
  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(dist()),
linux_distribution(),
platform.system(),
platform.machine(),
platform.platform(),
platform.uname(),
platform.version(),
platform.mac_ver(),
))

Los resultados de este script se ejecutaron en algunos sistemas diferentes (Linux, Windows, Solaris, MacOS) y arquitecturas (x86, x64, Itanium, power pc, sparc) están disponibles aquí: https://github.com/hpcugent/easybuild/ wiki/OS_sabor_nombre_versión

por ejemplo, Solaris en sparc dio:

Python version: ['2.6.4 (r264:75706, Aug  4 2010, 16:53:32) [C]']
dist: ('', '', '')
linux_distribution: ('', '', '')
system: SunOS
machine: sun4u
platform: SunOS-5.9-sun4u-sparc-32bit-ELF
uname: ('SunOS', 'xxx', '5.9', 'Generic_122300-60', 'sun4u', 'sparc')
version: Generic_122300-60
mac_ver: ('', ('', '', ''), '')

o MacOS en M1

Python version: ['2.7.16 (default, Dec 21 2020, 23:00:36) ', '[GCC Apple LLVM 12.0.0 (clang-1200.0.30.4) [+internal-os, ptrauth-isa=sign+stri'] 
dist: ('', '', '') 
linux_distribution: ('', '', '') 
system: Darwin 
machine: arm64 
platform: Darwin-20.3.0-arm64-arm-64bit 
uname: ('Darwin', 'Nautilus.local', '20.3.0', 'Darwin Kernel Version 20.3.0: Thu Jan 21 00:06:51 PST 2021; root:xnu-7195.81.3~1/RELEASE_ARM64_T8101', 'arm64', 'arm') 
version: Darwin Kernel Version 20.3.0: Thu Jan 21 00:06:51 PST 2021; root:xnu-7195.81.3~1/RELEASE_ARM64_T8101 
mac_ver: ('10.16', ('', '', ''), 'arm64')
Jens Timmerman avatar Apr 10 '2012 15:04 Jens Timmerman

Normalmente uso sys.platformpara conseguir la plataforma. sys.platformdistinguirá entre Linux, otros Unix y OS X, mientras que os.namees " posix" para todos ellos.

Para obtener información mucho más detallada, utilice el módulo de plataforma . Tiene funciones multiplataforma que le brindarán información sobre la arquitectura de la máquina, el sistema operativo y la versión del sistema operativo, la versión de Python, etc. También tiene funciones específicas del sistema operativo para obtener cosas como la distribución particular de Linux.

dF. avatar Sep 21 '2008 11:09 dF.
import os
print(os.name)

Esto le brinda la información esencial que normalmente necesitará. Para distinguir entre, digamos, diferentes ediciones de Windows, deberá utilizar un método específico de la plataforma.

Greg Hewgill avatar Sep 21 '2008 06:09 Greg Hewgill

https://docs.python.org/library/os.html

Para complementar la publicación de Greg, si estás en un sistema posix, que incluye MacOS, Linux, Unix, etc., puedes usar os.uname() para tener una mejor idea de qué tipo de sistema es.

bmdhacks avatar Sep 21 '2008 06:09 bmdhacks

Algo parecido:

import os
if os.name == "posix":
    print(os.system("uname -a"))
# insert other possible OSes here
# ...
else:
    print("unknown OS")
lenooh avatar Aug 24 '2011 11:08 lenooh