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的框架中为MySQL实现restful接口的教程
Apr 08 Python
Python下使用Scrapy爬取网页内容的实例
May 21 Python
python 修改本地网络配置的方法
Aug 14 Python
python 解决flask uwsgi 获取不到全局变量的问题
Dec 22 Python
python 实现提取log文件中的关键句子,并进行统计分析
Dec 24 Python
深入浅析Python 命令行模块 Click
Mar 11 Python
在echarts中图例legend和坐标系grid实现左右布局实例
May 16 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 Python
python生成xml时规定dtd实例方法
Sep 21 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
Nov 06 Python
python Tkinter的简单入门教程
Apr 11 Python
python中pymysql包操作数据库方法
Apr 19 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
人族 Terran 基本策略
2020/03/14 星际争霸
理解PHP5中static和const关键字的区别
2007/03/19 PHP
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
PHP分页效率终结版(推荐)
2013/07/01 PHP
一些常用的Javascript函数
2006/12/22 Javascript
JQuery UI皮肤定制
2009/07/27 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
document.write的几点使用心得
2014/05/14 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
js计算任意值之间随机数的方法
2015/01/16 Javascript
Dojo获取下拉框的文本和值实例代码
2016/05/27 Javascript
node.js实现快速截图
2016/08/27 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
opencv与numpy的图像基本操作
2019/03/08 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
食品安全责任书
2014/04/15 职场文书
2014公安机关纪律作风整顿思想汇报
2014/09/13 职场文书
2015年实习单位评语
2015/03/25 职场文书
初中军训感想
2015/08/07 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js
Android基础入门之dataBinding的简单使用教程
2022/06/21 Java/Android
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android
mysql序号rownum行号实现方式
2022/12/24 MySQL