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迭代器与生成器详解
Mar 10 Python
python2 与 python3 实现共存的方法
Jul 12 Python
Flask框架Flask-Principal基本用法实例分析
Jul 23 Python
python实现简单的单变量线性回归方法
Nov 08 Python
pygame游戏之旅 添加游戏暂停功能
Nov 21 Python
python logging日志模块原理及操作解析
Oct 12 Python
Python模拟FTP文件服务器的操作方法
Feb 18 Python
Django与pyecharts结合的实例代码
May 13 Python
Python代码执行时间测量模块timeit用法解析
Jul 01 Python
python编写实现抽奖器
Sep 10 Python
解决python 执行shell命令无法获取返回值的问题
Dec 05 Python
python自动化操作之动态验证码、滑动验证码的降噪和识别
Aug 30 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
ThinkPHP框架实现session跨域问题的解决方法
2014/07/01 PHP
浅谈php命令行用法
2015/02/04 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
多种方法实现load加载完成后把图片一次性显示出来
2014/02/19 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
js操作cookie保存浏览记录的方法
2015/12/25 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
Python使用自带的ConfigParser模块读写ini配置文件
2016/06/26 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
python matplotlib 在指定的两个点之间连线方法
2018/05/25 Python
利用Python的sympy包求解一元三次方程示例
2019/11/22 Python
python 将dicom图片转换成jpg图片的实例
2020/01/13 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
最新远光软件笔试题面试题内容
2013/11/08 面试题
公司市场部岗位职责
2013/12/02 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
开业典礼致辞
2015/07/29 职场文书
二年级数学教学反思
2016/02/16 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
python 实现mysql自动增删分区的方法
2021/04/01 Python
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android
React自定义hook的方法
2022/06/25 Javascript