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手机号码归属地查询代码
May 04 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
Jan 02 Python
Python基于Floyd算法求解最短路径距离问题实例详解
May 16 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
python实现控制台打印的方法
Jan 12 Python
python判断文件是否存在,不存在就创建一个的实例
Feb 18 Python
PIL图像处理模块paste方法简单使用详解
Jul 17 Python
Django+zTree构建组织架构树的方法
Aug 21 Python
pycharm运行scrapy过程图解
Nov 22 Python
python实现tail -f 功能
Jan 17 Python
Python新手如何进行闭包时绑定变量操作
May 29 Python
pandas处理csv文件的方法步骤
Oct 16 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的变量总结 新手推荐
2011/04/18 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
2017/02/15 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
JS 毫秒转时间示例代码
2013/09/22 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
原生JavaScript实现Ajax的方法
2016/04/07 Javascript
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
AngularJS创建自定义指令的方法详解
2016/11/03 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
2017/06/21 Javascript
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
2019/07/11 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
[03:46]显微镜下的DOTA2第七期——满血与残血
2014/06/20 DOTA
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
python 重定向获取真实url的方法
2018/05/11 Python
python单例模式的多种实现方法
2019/07/26 Python
python名片管理系统开发
2020/06/18 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
构造器Constructor是否可被override?
2013/08/06 面试题
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
采购员岗位职责
2015/02/03 职场文书
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python