Aquí podría ser tu PUBLICIDAD


Python: ¿En qué sistema operativo me estoy ejecutando?

votos
410

¿Qué necesito ver para ver si estoy en Windows, Unix, etc.?

Publicado el 05/08/2008 a las 04:23
fuente por usuario Mark Harrison
En otros idiomas...        العربية       

22 respuestas

votos
513

>>> import os
>>> print os.name
posix
>>> import platform
>>> platform.system()
'Linux'
>>> platform.release()
'2.6.22-15-generic'

El resultado de platform.system()es el siguiente:

  • Linux: Linux
  • Mac: Darwin
  • Windows: Windows

Ver: plataforma: acceso a los datos de identificación de la plataforma subyacente

Respondida el 05/08/2008 a las 04:27
fuente por usuario Louis Brandy


Aquí podría ser tu PUBLICIDAD


votos
146

Dang - lbrandy me ganó al golpe, pero eso no significa que no pueda darte los resultados del sistema para Vista.

>>> import os
>>> os.name
'nt'
>>> import platform
>>> platform.system()
'Windows'
>>> platform.release()
'Vista'

... y no puedo creer que nadie haya publicado uno para Windows 10 aún:

>>> import os
>>> os.name
'nt'
>>> import platform
>>> platform.system()
'Windows'
>>> platform.release()
'10'
Respondida el 05/08/2008 a las 04:57
fuente por usuario Joey deVilla

votos
108

Para el registro, aquí están los resultados en Mac:

>>> import os
>>> os.name
'posix'
>>> import platform
>>> platform.system()
'Darwin'
>>> platform.release()
'8.11.1'
Respondida el 05/08/2008 a las 05:13
fuente por usuario Mark Harrison

votos
73

Código de ejemplo para diferenciar el uso de pitón de SO:

from sys import platform as _platform

if _platform == "linux" or _platform == "linux2":
   # linux
elif _platform == "darwin":
   # MAC OS X
elif _platform == "win32":
   # Windows
elif _platform == "win64":
    # Windows 64-bit
Respondida el 16/09/2014 a las 08:42
fuente por usuario user3928804

votos
35

También puede usar sys.platform si ya tiene sys importado y no desea importar otro módulo

>>> import sys
>>> sys.platform
'linux2'
Respondida el 26/08/2008 a las 04:41
fuente por usuario Moe

votos
24

Si desea que el usuario puede leer los datos, pero todavía se detalla, puede utilizar platform.platform ()

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

He aquí un par de llamadas diferentes posibles que puede realizar para identificar dónde se encuentra

import platform
import sys

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

Las salidas de este guión corrió en unos pocos sistemas diferentes están disponibles aquí: https://github.com/hpcugent/easybuild/wiki/OS_flavor_name_version

Respondida el 23/01/2013 a las 11:55
fuente por usuario Jens Timmerman

votos
17

hago esto

import sys
print sys.platform

Documentos aquí: sys.platform .

Todo lo que necesitas es probablemente en el módulo sys.

Respondida el 16/02/2009 a las 03:43
fuente por usuario ggambett

votos
10

Estoy utilizando la herramienta WLST que viene con WebLogic, y que no aplique el paquete de plataforma.

wls:/offline> import os
wls:/offline> print os.name
java 
wls:/offline> import sys
wls:/offline> print sys.platform
'java1.5.0_11'

Aparte de parchear el sistema javaos.py ( problema con os.system () en Windows 2003 con jdk1.5 ) (que no puedo hacer, tengo que usar WebLogic fuera de la caja), esto es lo que yo uso:

def iswindows():
  os = java.lang.System.getProperty( "os.name" )
  return "win" in os.lower()
Respondida el 11/06/2010 a las 08:37
fuente por usuario Alftheo

votos
9
>>> import platform
>>> platform.system()
Respondida el 25/06/2011 a las 12:10
fuente por usuario user813713

votos
8

Para Jython la única manera de obtener el nombre os he encontrado es comprobar os.namela propiedad de Java (tratado con sys, osy platformmódulos de Jython en WinXP 2.5.3):

def get_os_platform():
    """return platform name, but for Jython it uses os.name Java property"""
    ver = sys.platform.lower()
    if ver.startswith('java'):
        import java.lang
        ver = java.lang.System.getProperty("os.name").lower()
    print('platform: %s' % (ver))
    return ver
Respondida el 09/01/2013 a las 09:47
fuente por usuario Michał Niklas

votos
7

/usr/bin/python3.2

def cls():
    from subprocess import call
    from platform import system

    os = system()
    if os == 'Linux':
        call('clear', shell = True)
    elif os == 'Windows':
        call('cls', shell = True)
Respondida el 10/10/2011 a las 01:11
fuente por usuario urantialife

votos
6

Ten cuidado si estás en Windows con Cygwin donde os.nameestá posix.

>>> import os, platform
>>> print os.name
posix
>>> print platform.system()
CYGWIN_NT-6.3-WOW
Respondida el 08/07/2015 a las 02:46
fuente por usuario guaka

votos
6

resultados interesantes en Windows 8:

>>> import os
>>> os.name
'nt'
>>> import platform
>>> platform.system()
'Windows'
>>> platform.release()
'post2008Server'

Editar: Eso es un error

Respondida el 14/02/2013 a las 11:44
fuente por usuario Eric

votos
5

prueba esto:

import os

os.uname()

y se puede hacer:

info=os.uname()
info[0]
info[1]
Respondida el 16/01/2015 a las 06:13
fuente por usuario user4410697

votos
5

Si no en busca de la versión del kernel, etc, pero en busca de la distribución de Linux es posible que desee utilizar la siguiente

en python2.6 +

>>> import platform
>>> print platform.linux_distribution()
('CentOS Linux', '6.0', 'Final')
>>> print platform.linux_distribution()[0]
CentOS Linux
>>> print platform.linux_distribution()[1]
6.0

en python2.4

>>> import platform
>>> print platform.dist()
('centos', '6.0', 'Final')
>>> print platform.dist()[0]
centos
>>> print platform.dist()[1]
6.0

Obviamente, esto sólo funcionará si está ejecutando esto en Linux. Si desea tener más comandos genérica en todas las plataformas, se pueden mezclar esto con ejemplos de código que figuran en otras respuestas.

Respondida el 28/03/2013 a las 06:19
fuente por usuario sunil

votos
5

en la misma vena....

import platform
is_windows=(platform.system().lower().find("win") > -1)

if(is_windows): lv_dll=LV_dll("my_so_dll.dll")
else:           lv_dll=LV_dll("./my_so_dll.so")
Respondida el 28/09/2011 a las 06:54
fuente por usuario Elden

votos
4

¿Qué tal una nueva respuesta:

import psutil
psutil.OSX     #True
psutil.WINDOWS #False
psutil.LINUX   #False 

Esta sería la salida si yo estaba usando OSX

Respondida el 14/08/2017 a las 02:00
fuente por usuario ᴡʜᴀᴄᴋᴀᴍᴀᴅᴏᴏᴅʟᴇ3000

votos
3

También puede utilizar solamente módulo de plataforma sin importar módulo os para obtener toda la información.

>>> import platform
>>> platform.os.name
'posix'
>>> platform.uname()
('Darwin', 'mainframe.local', '15.3.0', 'Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64', 'x86_64', 'i386')

Un diseño agradable y ordenado para informar objetivo se puede lograr utilizando esta línea:

for i in zip(['system','node','release','version','machine','processor'],platform.uname()):print i[0],':',i[1]

Eso le da a esta salida:

system : Darwin
node : mainframe.local
release : 15.3.0
version : Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64
machine : x86_64
processor : i386

Lo que falta por lo general es la versión del sistema operativo, pero usted debe saber si está ejecutando Windows, Linux o Mac de forma autónoma plataforma es el uso de esta prueba:

In []: for i in [platform.linux_distribution(),platform.mac_ver(),platform.win32_ver()]:
   ....:     if i[0]:
   ....:         print 'Version: ',i[0]
Respondida el 20/08/2016 a las 05:03
fuente por usuario G M

votos
3

Compruebe las pruebas disponibles con plataforma de módulo e imprimir la respuesta fuera para su sistema:

import platform

print dir(platform)

for x in dir(platform):
    if x[0].isalnum():
        try:
            result = getattr(platform, x)()
            print "platform."+x+": "+result
        except TypeError:
            continue
Respondida el 30/10/2014 a las 12:43
fuente por usuario Stefan Gruenwald

votos
1

Si está ejecutando MacOS X y ejecutar platform.system()a obtener Darwin porque MacOS X está construido sobre Darwin OS de Apple. Darwin es el núcleo de MacOS X y es esencialmente MacOS X sin la interfaz gráfica de usuario.

Respondida el 13/01/2018 a las 06:29
fuente por usuario Alexander Calvert

votos
1

Utilice el import osy os.namepalabras clave.

Respondida el 07/05/2017 a las 12:07
fuente por usuario nabu

votos
-4

Simplemente para la corrección, variable de entorno "OS" parece definirse por todas partes. En Windows XP / 7/8/10, se establece en "Windows_NT". En Linux SuSE SP2 se establece en "SLES11 Linux x86-64 [2]". No tengo acceso a las máquinas OS-X o BSD, sería interesante comprobar allí también.

import os

os_name = os.getenv("OS")
if os_name == "Windows_NT":
    # Windows
elif "linux" in os_name:
    # Linux
elif ...
Respondida el 01/12/2015 a las 04:28
fuente por usuario Alexey Polonsky


Aquí podría ser tu PUBLICIDAD