当前位置: 首页 > 面试题库 >

在ConfigParser中保留大小写?

鲁向明
2023-03-14
问题内容

我尝试使用Python的ConfigParser模块保存设置。对于我的应用程序,重要的是要在我的部分中保留每个名称的大小写。文档提到将str()传递给ConfigParser.optionxform()可以完成此操作,但对我而言不起作用。名称均为小写。我想念什么吗?

<~/.myrc contents>
[rules]
Monkey = foo
Ferret = baz

我得到的Python伪代码

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')]

问题答案:

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

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,而不是调用它;重写可以在子类或实例中完成。覆盖时,将其设置为函数(而不是调用函数的结果)。

我现在将其报告为Bug,此问题已得到修复。



 类似资料:
  • 有很多关于堆大小的帖子和站点,但是没有一个提到在调用JVM时如何找出我可以保留的最大可能堆大小。 任务是用最大可用堆大小xmx=max动态启动我的jvm(这里不需要讨论这个任务的对象!)。 我们可以考虑读取当前可用或空闲的内存,并将该大小用于xms和XMX。但这不起作用。 调用Java程序时: Java-XMS1536M-XMX1536M myApp 导致: 选择您选中的应用程序大约需要的堆。并在

  • 我们将设置为 1 小时,如下所示(以前设置为 72H) 使用以下Kafka命令行工具,我们将kafka 设置为< code>1H。我们的目标是清除topic - 中比1H旧的数据,因此我们使用了以下命令: 此外 两个命令都运行无误。 但问题是关于Kafka的数据,它比1H更老,仍然存在! 实际上,没有从主题分区中删除任何数据。我们有HDP Kafka集群版本1.0x和ambari 我们不明白为什么

  • 我看了最简单的物体,甚至那些都不一样...对于java.lang.Integer,VisualVm报告20个字节,而不是其他的16个字节(在我的解释中,这是因为从Integer类中提交的=12字节header+4字节int'value'=16,不需要填充)。 哪一个是正确的,为什么?

  • 问题内容: 我最近在Netbeans(6.7)中增加了对Profiler的使用,这是一个很棒的工具。 我有一个问题。进行堆转储时,可以在摘要页面(期望窗口)上“按保留的大小查找最大的对象”。 这个值是什么,如何将其用于分析内存使用情况? 问题答案: 对象的保留大小是该对象从垃圾回收保留的内存量。 形式上的定义是“对象的大小加上递归仅由第一个对象引用的所有对象的大小”。 有关保留的内存是什么的更多说

  • 问题内容: 我已经寻找了一种在Java中调整数组大小的方法,但是我找不到在保留当前元素的同时调整数组大小的方法。 我发现了类似的示例代码;,但是这删除了之前存储的元素。 我的代码基本上可以做到这一点:每当添加新元素时,数组将增大1。我认为可以通过动态编程来完成,但是我不确定如何实现它。 问题答案: 你无法在Java中调整数组的大小。你需要: 创建所需大小的新数组,然后使用以下命令将内容从原始数组复

  • 任务:凯撒算法(密码(c))通过按密钥(k)位置“旋转”每个字母来加密消息。 实现:ci=(pi k)mod26,其中ci是密码,pi是明文,k是密钥。 我的伪代码: 从命令行参数获取密钥 将键(k)转换为整数 提示用户输入纯文本(pi) 对于每个纯文本字符,保留大小写(使用C中的isalpha、isupper和islower函数)。 最后,按键移动明文字符,例如“回家!”——“Hp Ipnf!”