首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否在ConfigParser中保留大小写?

是否在ConfigParser中保留大小写?
EN

Stack Overflow用户
提问于 2009-10-23 15:03:53
回答 4查看 36.7K关注 0票数 104

我尝试使用Python的ConfigParser模块来保存设置。对于我的应用程序来说,在我的部分中保留每个名称的大小写是很重要的。文档中提到,将str()传递给ConfigParser.optionxform()可以实现这一点,但它不适用于我。名字都是小写的。我是不是遗漏了什么?

代码语言:javascript
复制
<~/.myrc contents>
[rules]
Monkey = foo
Ferret = baz

我得到的Python伪代码:

代码语言:javascript
复制
import ConfigParser,os

def get_config():
   config = ConfigParser.ConfigParser()
   config.optionxform(str())
    try:
        config.read(os.path.expanduser('~/.myrc'))
        return config
    except Exception, e:
        log.error(e)

c = get_config()  
print c.options('rules')
[('monkey', 'foo'), ('ferret', 'baz')]
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-10-23 15:33:21

文档令人困惑。他们的意思是:

代码语言:javascript
复制
import ConfigParser, os
def get_config():
    config = ConfigParser.ConfigParser()
    config.optionxform=str
    try:
        config.read(os.path.expanduser('~/.myrc'))
        return config
    except Exception, e:
        log.error(e)

c = get_config()  
print c.options('rules')

例如,覆盖optionxform,而不是调用它;覆盖可以在子类或实例中完成。重写时,将其设置为函数(而不是调用函数的结果)。

我现在已经报告了this as a bug,它已经被修复了。

票数 125
EN

Stack Overflow用户

发布于 2014-05-24 03:02:39

因为我在创建对象后立即设置了optionxform

代码语言:javascript
复制
config = ConfigParser.RawConfigParser()
config.optionxform = str
票数 48
EN

Stack Overflow用户

发布于 2018-08-19 12:09:10

添加到您的代码中:

代码语言:javascript
复制
config.optionxform = lambda option: option  # preserve case for letters
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1611799

复制
相关文章

相似问题

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