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 self,cls,decorator的理解
Jul 13 Python
Python中AND、OR的一个使用小技巧
Feb 18 Python
Python命令行参数解析模块optparse使用实例
Apr 13 Python
解决已经安装requests,却依然提示No module named requests问题
May 18 Python
Python3.6使用tesseract-ocr的正确方法
Oct 17 Python
Python版名片管理系统
Nov 30 Python
pytorch多GPU并行运算的实现
Sep 27 Python
Pytorch中的variable, tensor与numpy相互转化的方法
Oct 10 Python
Python实现Word文档转换Markdown的示例
Dec 22 Python
PyQt5中QSpinBox计数器的实现
Jan 18 Python
一些让Python代码简洁的实用技巧总结
Aug 23 Python
Python3的进程和线程你了解吗
Mar 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单态模式简单用法示例
2016/11/16 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
影响jQuery使用的14个方面
2014/09/01 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
Vue.js常用指令的使用小结
2017/06/23 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
2018/11/26 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
python装饰器与递归算法详解
2016/02/18 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
Python OpenCV获取视频的方法
2018/02/28 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
pycharm进入时每次都是insert模式的解决方式
2021/02/05 Python
安踏官方商城:anta.cn
2019/12/16 全球购物
SQL面试题
2013/04/30 面试题
母亲80寿诞答谢词
2014/01/16 职场文书
十佳大学生事迹材料
2014/01/29 职场文书
小学少先队活动方案
2014/02/18 职场文书
倡议书范文
2014/04/16 职场文书
企业催款函范本
2015/06/24 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python