在ConfigParser中,为什么以`REM`开头的行将被忽略?

时间:2012-11-12 10:06:19

标签: python config

代码是这样的:

        if line.split(None, 1)[0].lower() == 'rem' and line[0] in "rR":
            # no leading whitespace
            continue

我认为这意味着如果我写这样的配置:

[memo]
rem ember_last = True

rem ember_last开头的行将被忽略。 为什么ConfigParser设计得像这样?

3 个答案:

答案 0 :(得分:1)

它受编程语言BASIC的影响。 REM表示备注并引入评论。此外,comment应被视为评论。其他评论声明为#;

答案 1 :(得分:0)

Batch中的

rem用于添加注释,即它是一个基本上什么都不做的命令。似乎这个决定被转移到配置文件:

  

允许您在批处理文件或配置文件中包含注释(备注)。

但是,rem和实际注释总是用空格分隔,因此忽略配置选项remember是没有意义的(只有rem ember会)。您发布的代码确认了这一点,如下所示:

>>> line = 'remember_last = True'
>>> line.split(None, 1)[0].lower()
'remember_last'

所以,你的问题似乎是另一回事。

答案 2 :(得分:0)

小实验:

In [190]: line = 'remember_last = True'

In [191]: line.split(None, 1)[0].lower() == 'rem' and line[0] in "rR"
Out[191]: False

表明您的担忧是没有根据的。你需要解释 - 或者你可以自己弄明白吗?

PS布尔的第二部分表达式是绝对多余的