广告
返回顶部
首页 > 资讯 > 操作系统 >Python脚本获取操作系统版本信息
  • 747
分享到

Python脚本获取操作系统版本信息

脚本操作系统版本 2022-06-04 18:06:35 747人浏览 薄情痞子
摘要

查看系统版本信息是一件家常便饭的事情,有时候需要将版本信息录入到资产管理系统中,如果每次手动的去查询这些信息再录入系统那么是一件令人呢头疼的事情,如果采用脚本去完成这件事情,那么情况就有所不同了。 在pyt

查看系统版本信息是一件家常便饭的事情,有时候需要将版本信息录入到资产管理系统中,如果每次手动的去查询这些信息再录入系统那么是一件令人呢头疼的事情,如果采用脚本去完成这件事情,那么情况就有所不同了。

python的世界里,获取windows版本信息和linux的版本信息都可以采用platfORM模块,但platform模块也不是万能的,有些特殊的信息(比如Windows的内部版本号)这个模块拿不到,那么只能另辟蹊径了。

在Linux系统中,可以简单的认为一切都是文件,那么就算没有现成的命令可用时,可以用open()文件的方法通过对文件的读写控制它。而在Windows的大部分信息在注册表中都能查到,因此可以从注册表上下手。Windows注册表是一个好东西,拿数据就像在Linux下一切都是文件一样方便,如果想用Python访问注册表,除了权限外就是需要模块了,在Python中_winreg是一个内置模块,通过这一模块可以对注册表进行读写。

本脚本收集了一些获取版本信息的常见方法,除了platform模块外,还有其他的模块可供使用,因为platform模块不是内置模块,因此需要额外安装。Windows下运行脚本需要考虑权限问题和中文字符的问题,解决Python打印中文字符的问题是通过脚本中的get_system_encoding()函数实现的,这个函数取自Django,经过测试这个函数还是非常好用的。

注:在PyCharm中,经常遇到Run窗口打印出的中文显示乱码,代码中没有经过正确转码是一方面,而IDE的编码设置也是一方面。如果是在Windows下开发,那么建议代码用UTF-8编写,IDE的编码则设置为“GBK”,设置方法“File”-->"Settings"-->"Editor"-->"File Encoding"-->"IDE Encoding"选择“<System Default (now GBK)>”, "Project Encoding"选择UTF-8保证代码的编码一致性。

查看图片

脚本如下:


#!/usr/bin/python
# encoding: utf-8
# -*- coding: utf8 -*-
"""
Created by PyCharm.
File:        LinuxBashshellScriptForOps:getSystemVersion.py
User:        Guodong
Create Date:    2016/12/16
Create Time:    14:51
 """
import sys
import os
import platform
import subprocess
import codecs
import locale


def get_system_encoding():
  """
  The encoding of the default system locale but falls back to the given
  fallback encoding if the encoding is unsupported by python or could
  not be determined. See tickets #10335 and #5846
  """
  try:
    encoding = locale.getdefaultlocale()[1] or 'ascii'
    codecs.lookup(encoding)
  except Exception:
    encoding = 'ascii'
  return encoding


DEFAULT_LOCALE_ENCODING = get_system_encoding()

mswindows = (sys.platform == "win32") # learning from 'subprocess' module
linux = (sys.platform == "linux2")

hidden_hostname = True

if mswindows:
  uname = list(platform.uname())
  if hidden_hostname:
    uname[1] = "hidden_hostname"
  print uname

  import _winreg

  try:
    reg_key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MacHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion")
    if reg_key:
      ProductName = _winreg.QueryValueEx(reg_key, "ProductName")[0] or None
      EditionId = _winreg.QueryValueEx(reg_key, "EditionId")[0] or None
      ReleaseId = _winreg.QueryValueEx(reg_key, "ReleaseId")[0] or None
      CurrentBuild = _winreg.QueryValueEx(reg_key, "CurrentBuild")[0] or None
      BuildLabEx = _winreg.QueryValueEx(reg_key, "BuildLabEx")[0][:9] or None
      print (ProductName, EditionId, ReleaseId, CurrentBuild, BuildLabEx)
  except Exception as e:
    print e.message.decode(DEFAULT_LOCALE_ENCODING)

if linux:
  uname = list(platform.uname())
  if hidden_hostname:
    uname[1] = "hidden_hostname"
  print uname

  proc_obj = subprocess.Popen(r'uname -a', shell=True, stdout=subprocess.PIPE,
                stderr=subprocess.STDOUT)
  result = proc_obj.stdout.read().strip().decode(DEFAULT_LOCALE_ENCODING)
  if result:
    print result

  if os.path.isfile("/proc/version"):
    with open("/proc/version", 'r') as f:
      content = f.read().strip()
    if content != "":
      print content

  if os.path.isfile("/etc/issue"):
    with open("/etc/issue", 'r') as f:
      content = f.read().strip()
    if content != "":
      print content

截图如下:

(1)注册表信息获取位置:

查看图片

(2)Windows环境下的输出:

查看图片

(3)Linux环境下的输出:

查看图片

--结束END--

本文标题: Python脚本获取操作系统版本信息

本文链接: https://www.lsjlt.com/news/13916.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python脚本获取操作系统版本信息
    查看系统版本信息是一件家常便饭的事情,有时候需要将版本信息录入到资产管理系统中,如果每次手动的去查询这些信息再录入系统那么是一件令人呢头疼的事情,如果采用脚本去完成这件事情,那么情况就有所不同了。 在Pyt...
    99+
    2022-06-04
    脚本 操作系统 版本
  • 脚本RGIS.vbs如何远程或本地获取系统信息
    本篇内容主要讲解“脚本RGIS.vbs如何远程或本地获取系统信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“脚本RGIS.vbs如何远程或本地获取系统信息”吧!****************...
    99+
    2023-06-08
  • Android获取手机系统版本等信息的方法
    本文实例讲述了Android获取手机系统版本等信息的方法。分享给大家供大家参考。具体如下: String phoneInfo = "Product: " + android....
    99+
    2022-06-06
    版本 方法 系统 手机 Android
  • 利用Python获取操作系统信息实例
    前言 每一位运维人员都应该对自己所管理的机器配置很清楚,因为这对我们快速处理问题很有帮助,比如随着业务增长,突然某些机器负载上涨的厉害,这时候要排查原因,除了从应用程序、架构上分析外,当前硬件性能的分析应该...
    99+
    2022-06-04
    实例 操作系统 信息
  • Android获取系统版本
    Android获取系统版本 在Android开发中,我们经常需要获取设备的系统版本信息。可以通过以下代码获取当前Android设备的系统版本: String version = Build.VERSI...
    99+
    2023-10-22
    android Android
  • python获取android设备的GPS信息脚本分享
    在android上,我们可以使用QPython来编写、执行Python脚本。它对很多android 系统函数进行了方便的封装,使用QPython编写功能简单的小程序异常方便。 ...
    99+
    2022-06-06
    gps 脚本 Python Android
  • Python 获取磁盘信息的脚本及常用文
    文件是否存在 os.path.exists(save_to_path+ '/0.png'): 删除 os.remove(save_to_path + '/0.png') 当前运行的脚本位置 run_path = os.path.s...
    99+
    2023-01-31
    磁盘 脚本 常用
  • vbs怎么获取操作系统及其版本号
    这篇文章给大家分享的是有关vbs怎么获取操作系统及其版本号的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vbs获取操作系统及其版本号'***********************************...
    99+
    2023-06-08
  • Android获取手机型号/系统版本号/App版本号等信息实例讲解
    MainActivity如下: 代码如下: package cn.testgethandsetinfo; import android.os.Bundle; import a...
    99+
    2022-06-06
    app版本 版本 系统 版本号 app 手机 Android
  • 利用Shell脚本获取服务器信息
    本篇内容介绍了“利用Shell脚本获取服务器信息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!此脚本已经在ubuntu以及centos版本上...
    99+
    2023-06-09
  • Linux系统如何查看python版本信息
    今天小编给大家分享一下Linux系统如何查看python版本信息的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。方法一执行命令...
    99+
    2023-06-28
  • 解析Android获取系统cpu信息,内存,版本,电量等信息的方法详解
    Android获取系统cpu信息,内存,版本,电量等信息 1、CPU频率,CPU信息:/proc/cpuinfo和/proc/stat 通过读取文件/proc/cpuinfo系...
    99+
    2022-06-06
    版本 方法 Android
  • python获取linux的系统信息
     python写的抓取linux系统主要信息的脚本,主要就是内存,硬盘、CPU之类的信息。   内存信息 / meminfo 返回dict #!/usr/bin/env python def memory_stat():     mem =...
    99+
    2023-01-31
    系统 信息 python
  • python获取系统硬件信息
    github项目 https://github.com/giampaolo/psutil cpu,内存,etc. ...
    99+
    2023-01-31
    硬件 系统 信息
  • Python爬虫获取基金基本信息
    目录1 前言2 如何抓取基本信息3 xpath 获取数据4 bs4 获取数据5 最终结果展现1 前言 上篇文章Python爬虫获取基金列表我们已经讲述了如何从基金网站上获取基金的列表...
    99+
    2022-11-11
  • Python脚本如何读取Consul配置信息
    这篇文章给大家分享的是有关Python脚本如何读取Consul配置信息的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先来说一下背景,为什么要写脚本去读Consul的配置信息呢?Consul是啥呢?consul是g...
    99+
    2023-06-25
  • 如何在android 中获取本机其他app的版本信息
    如何在android 中获取本机其他app的版本信息?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。先建一个实体类,用来存放app信息。package ...
    99+
    2023-05-30
    android
  • Android SdkVersion的区别及获取版本信息方法
    1、minSdkVersion,targetSdkVersion,maxSdkVersion,compileSdkVersion四个数值之间有什么区别? • min...
    99+
    2022-06-06
    版本 方法 Android
  • Python使用psutil获取系统信息
    psutil模块 用Python来编写脚本简化日常的运维工作是Python的一个重要用途。在Linux下,有许多系统命令可以让我们时刻监控系统运行的状态,如ps,top,free等等...
    99+
    2022-11-11
  • ​ Android 操作系统用于获取设备的软件版本号 ​ro.build.id
    getprop ro.build.id 是一个 Android 操作系统中的命令,通常用于获取设备的软件版本号。其中,ro.build.id 是一个系统属性的名称,它存储了当前设备的软件版本标识符。 要使用 getprop ro.build...
    99+
    2023-10-02
    android adb
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作