首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python:_winreg类型名称

python:_winreg类型名称
EN

Stack Overflow用户
提问于 2013-07-12 07:17:56
回答 1查看 541关注 0票数 0

关于值类型:http://docs.python.org/2/library/_winreg.html#value-types

如何在_winreg.REG_BINARY中查询'REG_BINARY'

我可以使用以下命令手动完成此操作:

代码语言:javascript
复制
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)

当然还有更好的方法?

我想做的是..。

查询示例:

代码语言:javascript
复制
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)))

我在想我应该能做这样的事情:

代码语言:javascript
复制
>>> 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一起使用时也会导致问题:

代码语言:javascript
复制
>>> for v in _winreg.__dict__.itervalues():
...    if v == _winreg.REG_SZ:
...        print v

1
1
1
1
1
1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-16 00:35:38

我得出的结论是,我需要使用原始问题中提供的手动方法来完成此操作。

解决这个问题的唯一方法是_winreg开发人员为我们提供一个函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17605129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档