【问题标题】:How to recognize windows 10 using Python? [closed]如何使用 Python 识别 Windows 10? [关闭]
【发布时间】:2016-07-16 13:51:17
【问题描述】:
import platform 
if platform.release() == 'post2008Server' and platform.version() ==   '6.2.9200':
     print "It's windows 8"

我以前用它来识别 Windows 8。 但它在 Windows 10 中返回相同。那么还有其他方法可以识别它吗?

【问题讨论】:

  • 我这里没有Windows 10 atm。你能查一下platform.win32_ver吗?
  • 如果一切都失败了,您可以使用subprocess 调用systeminfo 可执行文件并解析它提供给您的信息。
  • 无法复制;我从version()win32_ver() 得到10.0.10586
  • 请注意,Python 2.6 在 2013 年有效地结束了支持,因此很可能 Python 2.6 根本不支持此处的细粒度 Windows 版本检测。您应该考虑升级到 Python 2.7(这应该是最轻松的),甚至是当前的 Python 3 版本(目前是 3.5)。
  • 在 Python 2.6 中? subprocess.Popen('ver', shell=True, stdout=subprocess.PIPE).communicate()[0]

标签: python windows python-2.6


【解决方案1】:

使用以下 Python 版本一切正常。

Python 3.5.1:

>>> import platform
>>> platform.release()
'10'
>>> platform.version()
'10.0.10240'

Python 2.7.11

>>> import platform
>>> platform.release()
'10'
>>> platform.version()
'10.0.10240'

升级到至少 2.7.x 怎么样?


编辑:正如@Rogalski 所述,您始终可以通过管道传递ver 命令,这应该独立于Python 版本返回以下内容:

>>> import subprocess
>>> subprocess.Popen('ver', shell=True, stdout=subprocess.PIPE).communicate()[0]
'\r\nMicrosoft Windows [Version 10.0.10240]\r\n'

【讨论】:

  • 由于某些依赖关系,我现在无法切换到 2.7,所以我会选择第二个选项。感谢您的帮助。
  • @Deepak,对于 GUI 应用程序,您可以添加 Popen 选项 creationflags=8 以避免创建控制台窗口。 8 是DETACHED_PROCESS 标志的值。在这种情况下,Windows 不会为 cmd.exe 进程创建或附加控制台(即 conhost.exe)。
猜你喜欢
  • 2017-10-30
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
  • 1970-01-01
  • 2016-12-06
  • 2018-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多