python读取注册表中值的方法


Posted in Python onApril 08, 2013

在Python的标准库中,_winreg.pyd可以操作Windows的注册表,另外第三方的win32库封装了大量的Windows API,使用起来也很方便。不过这里介绍的是使用_winreg操作注册表,毕竟是Python自带的标准库,无需安装第三方库。

下面的例子是通过Python获取Windows XP下已经安装的补丁号。Windows的补丁号都在“HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft\\Updates”下,通过循环下面所有的目录节点,如果找到的名称符合正则表达式KB(\d{6}).*,则表示是一个补丁号。

从例子可以看出操作起来非常的简单和快速。

# -*- coding: utf-8 -*-
# 获取Windows的已打的补丁号

from _winreg import *
import re

def subRegKey(key, pattern, patchlist):
  # 个数
  count = QueryInfoKey(key)[0]
  for index in range(count):
    # 获取标题
    name = EnumKey(key, index)
    result = patch.match(name)
    if result:
      patchlist.append(result.group(1))
    sub = OpenKey(key, name)
    subRegKey(sub, pattern, patchlist)
    CloseKey(sub)

if __name__ == '__main__':
  patchlist = []
  updates = 'SOFTWARE\\Microsoft\\Updates'
  patch = re.compile('(KB\d{6}).*')
  key = OpenKey(HKEY_LOCAL_MACHINE, updates)
  subRegKey(key, patch, patchlist)
  print 'Count: ' + str(len(patchlist))
  for p in patchlist:
    print p
  CloseKey(key)

下面内容转自  Python Standard Library12.13 The _winreg Module
(Windows only, New in 2.0) The _winreg module provides a basic interface to the Windows registry database. Example 12-17 demonstrates the module.

Example 12-17. Using the _winreg Module
File: winreg-example-1.py

import _winreg

explorer = _winreg.OpenKey(
  _winreg.HKEY_CURRENT_USER,
  "Software\\Microsoft\\Windows\CurrentVersion\\Explorer"
  )

#list values owned by this registry key 
try:
  i = 0
  while 1:
   name, value, type= _winreg.EnumValue(explorer, i)
   print repr(name),
   i += 1
except WindowsError:
  print

value, type = _winreg.QueryValueEx(explorer, "Logon User Name")

print
print "user is", repr(value)


'Logon User Name' 'CleanShutdown' 'ShellState' 'Shutdown Setting'
'Reason Setting' 'FaultCount' 'FaultTime' 'IconUnderline'...

user is u'Effbot'

好了这篇文章就先介绍到这了

Python 相关文章推荐
python获取当前日期和时间的方法
Apr 30 Python
Python简单获取自身外网IP的方法
Sep 18 Python
python 安装virtualenv和virtualenvwrapper的方法
Jan 13 Python
python实现猜数字小游戏
Mar 24 Python
python获取url的返回信息方法
Dec 17 Python
基于python的selenium两种文件上传操作实现详解
Sep 19 Python
Python内置类型性能分析过程实例
Jan 29 Python
解决Python logging模块无法正常输出日志的问题
Feb 21 Python
Django 再谈一谈json序列化
Mar 16 Python
python爬虫要用到的库总结
Jul 28 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
Aug 28 Python
Python实现异步IO的示例
Nov 05 Python
重命名批处理python脚本
Apr 05 #Python
Python编写的com组件发生R6034错误的原因与解决办法
Apr 01 #Python
Python中用Ctrl+C终止多线程程序的问题解决
Mar 30 #Python
python利用hook技术破解https的实例代码
Mar 25 #Python
利用python获得时间的实例说明
Mar 25 #Python
python 将字符串转换成字典dict
Mar 24 #Python
使用python提取html文件中的特定数据的实现代码
Mar 24 #Python
You might like
PHP Array交叉表实现代码
2010/08/05 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
js判断ie版本号的简单实现代码
2014/03/05 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
vue插件实现v-model功能
2018/09/10 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
JavaScript如何操作css
2020/10/24 Javascript
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
python访问hdfs的操作
2020/06/06 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
国培远程培训感言
2014/03/08 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
项目经理任命书
2014/06/04 职场文书
保险内勤岗位职责
2015/04/13 职场文书
机关保密工作承诺书
2015/05/04 职场文书
销售会议开幕词
2016/03/04 职场文书
golang 比较浮点数的大小方式
2021/05/02 Golang
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android