转 python:_winreg类型名称

python:_winreg类型名称

 

python winreg
对于值类型: 如何查询_winreg.REG_BINARY'REG_BINARY'? 我可以做手工:

import _winreg
reg_type_str = {
 _winreg.REG_BINARY: 'REG_BINARY',
 _winreg.REG_DWORD: 'REG_DWORD',
 _winreg.REG_DWORD_LITTLE_ENDIAN: 'REG_DWORD_LITTLE_ENDIAN',
 _winreg.REG_DWORD_BIG_ENDIAN: 'REG_DWORD_BIG_ENDIAN',
 _winreg.REG_EXPAND_SZ: 'REG_EXPAND_SZ',
 _winreg.REG_LINK: 'REG_LINK',
 _winreg.REG_MULTI_SZ: 'REG_MULTI_SZ',
 _winreg.REG_NONE: 'REG_NONE',
 _winreg.REG_RESOURCE_LIST: 'REG_RESOURCE_LIST',
 _winreg.REG_FULL_RESOURCE_DESCRIPTOR: 'REG_FULL_RESOURCE_DESCRIPTOR',
 _winreg.REG_RESOURCE_REQUIREMENTS_LIST: 'REG_RESOURCE_REQUIREMENTS_LIST',
 _winreg.REG_SZ: 'REG_SZ',
}
reg_type_str.get(_winreg.REG_SZ)

当然还有更好的办法吗? 我想要做什么... 例如查询:

reg_data, reg_type = _winreg.QueryValueEx(key, reg_value)
log.debug("Query: %s [%d:%s]" % (reg_data, reg_type, reg_type_str.get(reg_type)))

我想我应该可以这样做:

>>> for k, v in _winreg.__dict__:
...  if v == _winreg.REG_SZ:
...   print k
Traceback (most recent call last):
 File "<pyshell#468>", line 1, in <module>
 for k, v in _winreg.__dict__:
ValueError: too many values to unpack

当然,这并不工作,但即使它会与_winreg问题:

>>> for v in _winreg.__dict__.itervalues():
... if v == _winreg.REG_SZ:
...  print v
1
1
1
1
1
1


本文地址 :CodeGo.net/8986958/ 
------------------------------------------------------------------------------------------------------------------------- 
1.我已经到了,我需要做的,原来的问题所提供的。 解决这个问题的唯一方法是,如果_winreg开发商提供的函数
本文标题 :python:_winreg类型名称
本文地址 :CodeGo.net/8986958/ 

posted @ 2016-12-22 13:02  ZRHW菜鸟  阅读(867)  评论(0编辑  收藏  举报