¿Cómo puedo encontrar el sistema operativo actual en Python? [duplicar]
Como dice el título, ¿cómo puedo encontrar el sistema operativo actual en Python?
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'
platform
tambié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')
Normalmente uso sys.platform
para conseguir la plataforma. sys.platform
distinguirá entre Linux, otros Unix y OS X, mientras que os.name
es " 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.
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.
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.
Algo parecido:
import os
if os.name == "posix":
print(os.system("uname -a"))
# insert other possible OSes here
# ...
else:
print("unknown OS")