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中元类用法实例
Oct 10 Python
python数据清洗系列之字符串处理详解
Feb 12 Python
Python实现判断给定列表是否有重复元素的方法
Apr 11 Python
Python语言检测模块langid和langdetect的使用实例
Feb 19 Python
Python利用matplotlib做图中图及次坐标轴的实例
Jul 08 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
Aug 01 Python
Python 3 判断2个字典相同
Aug 06 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 Python
python程序中的线程操作 concurrent模块使用详解
Sep 23 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
Apr 03 Python
Opencv求取连通区域重心实例
Jun 04 Python
python中使用.py配置文件的方法详解
Nov 23 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设置头信息及取得返回头信息的方法
2016/01/25 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
php生成mysql的数据字典
2016/07/07 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
JS 有名函数表达式全面解析
2010/03/19 Javascript
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
js日历功能对象
2012/01/12 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
js只执行1次的函数示例
2016/07/20 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
python文件写入实例分析
2015/04/08 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
python数组复制拷贝的实现方法
2015/06/09 Python
Python实现字符串格式化的方法小结
2017/02/20 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
秋季开学典礼主持词
2014/03/19 职场文书
公司采购主管岗位职责
2014/06/17 职场文书
农行心得体会
2014/09/02 职场文书
支部书记四风问题对照检查材料
2014/10/04 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL