¿Cómo verifico si estoy ejecutando Windows en Python? [duplicate]
⏰ 4 minutos de lectura
gman
Encontré el módulo de plataforma pero dice que devuelve ‘Windows’ y está devolviendo ‘Microsoft’ en mi máquina. Me doy cuenta en otro hilo aquí en stackoverflow que a veces devuelve ‘Vista’.
Entonces, la pregunta es, ¿cómo implementar?
if isWindows():
...
¿De una manera compatible hacia adelante? Si tengo que buscar cosas como ‘Vista’, se romperá cuando salga la próxima versión de Windows.
Nota: Las respuestas que afirman que esta es una pregunta duplicada en realidad no responden a la pregunta. isWindows. Responden a la pregunta “qué plataforma”. Dado que existen muchos sabores de ventanas, ninguno de ellos describe exhaustivamente cómo obtener una respuesta de isWindows.
Similar a stackoverflow.com/questions/196930/…
– monje
25 de agosto de 2009 a las 1:27
“Debería haber una, y preferiblemente solo una, forma obvia de hacerlo”. Por desgracia, Python nos da al menos tres formas…
– John Fouhy
25 de agosto de 2009 a las 1:35
Liendre: Según PEP8 deberías preferir usar el nombre is_windows sobre isWindows.
os.name: El nombre del módulo dependiente del sistema operativo importado. Actualmente se han registrado los siguientes nombres: ‘posix’, ‘nt’, ‘java’.
En su caso, desea verificar ‘nt’ como os.name producción:
import os
if os.name == 'nt':
...
También hay una nota sobre os.name:
Ver también sys.platform tiene una granularidad más fina. os.uname() proporciona información de versión dependiente del sistema.
los plataforma El módulo proporciona comprobaciones detalladas de la identidad del sistema.
‘nt’ es el valor para windows
– caray
26 de febrero de 2014 a las 15:12
¿Qué devuelve Linux normalmente? posix?
–Andi Jay
18/04/2014 a las 17:41
@AndiJay: sí, ¡pero debería ser lo suficientemente fácil de probar!
– Martín Beckett
18/04/2014 a las 17:42
@MartinBeckett – No necesariamente. Es posible que no tenga una máquina que ejecute Linux disponible.
system()
Returns the system/OS name, e.g. 'Linux', 'Windows' or 'Java'.
An empty string is returned if the value cannot be determined.
Si eso no funciona, tal vez intente platform.win32_ver y si no genera una excepción, está en Windows; pero no sé si es compatible con 64 bits, ya que tiene 32 en el nombre.
win32_ver(release="", version='', csd='', ptype="")
Get additional version information from the Windows Registry
and return a tuple (version,csd,ptype) referring to version
number, CSD level and OS type (multi/single
processor).
Pero os.name es probablemente el camino a seguir, como han mencionado otros.
Por lo que vale, estas son algunas de las formas en que verifican Windows en platform.py:
if sys.platform == 'win32':
#---------
if os.environ.get('OS','') == 'Windows_NT':
#---------
try: import win32api
#---------
# Emulation using _winreg (added in Python 2.0) and
# sys.getwindowsversion() (added in Python 2.3)
import _winreg
GetVersionEx = sys.getwindowsversion
#----------
def system():
""" Returns the system/OS name, e.g. 'Linux', 'Windows' or 'Java'.
An empty string is returned if the value cannot be determined.
"""
return uname()[0]
En una máquina de 64 bits, con Windows 7 (SO de 64 bits), este es el resultado: Python 3.1.1 (r311:74483, 17 de agosto de 2009, 16:45:59) [MSC v.1500 64 bit (AMD64)] en win32 >>> print(sys.platform) win32 >>> platform.win32_ver() (‘post2008Server’, ‘6.1.7100’, ”, ‘Multiprocessor Free’) Tenga en cuenta que la compilación lo llama explícitamente win32.
– Francisco
25 de agosto de 2009 a las 21:17
Vaya, pensé que la salida se habría formateado mejor. Espero que puedas leerlo de todos modos.
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
Similar a stackoverflow.com/questions/196930/…
– monje
25 de agosto de 2009 a las 1:27
“Debería haber una, y preferiblemente solo una, forma obvia de hacerlo”. Por desgracia, Python nos da al menos tres formas…
– John Fouhy
25 de agosto de 2009 a las 1:35
Liendre: Según PEP8 deberías preferir usar el nombre
is_windows
sobreisWindows
.– fénix
13 de enero de 2019 a las 12:56