Python 在ConfigParser中,为什么以'REM'开头的行将被忽略?
代码如下所示:Python 在ConfigParser中,为什么以'REM'开头的行将被忽略?,python,config,Python,Config,代码如下所示: if line.split(None, 1)[0].lower() == 'rem' and line[0] in "rR": # no leading whitespace continue [memo] rem ember_last = True 我想这意味着如果我写这样的配置: if line.split(None, 1)[0].lower() == 'rem' and line[0] in
if line.split(None, 1)[0].lower() == 'rem' and line[0] in "rR":
# no leading whitespace
continue
[memo]
rem ember_last = True
我想这意味着如果我写这样的配置:
if line.split(None, 1)[0].lower() == 'rem' and line[0] in "rR":
# no leading whitespace
continue
[memo]
rem ember_last = True
以rem ember\u last
开头的行将被忽略。
为什么ConfigParser是这样设计的?批处理用于添加注释,也就是说,它是一个基本不做任何事情的命令。这一决定似乎被带入了配置文件:
允许您在批处理文件或配置文件中包含注释(备注)
但是,rem
和实际注释总是用空格分隔,因此忽略配置选项memory
(只有rem ember
会)。您发布的代码证实了这一点,如下所示:
>>> line = 'remember_last = True'
>>> line.split(None, 1)[0].lower()
'remember_last'
因此,您的问题似乎是其他问题。批处理用于添加注释,即它是一个基本上不做任何操作的命令。这一决定似乎被带入了配置文件:
允许您在批处理文件或配置文件中包含注释(备注)
但是,rem
和实际注释总是用空格分隔,因此忽略配置选项memory
(只有rem ember
会)。您发布的代码证实了这一点,如下所示:
>>> line = 'remember_last = True'
>>> line.split(None, 1)[0].lower()
'remember_last'
所以,你的问题似乎是另外一回事。小实验:
In [190]: line = 'remember_last = True'
In [191]: line.split(None, 1)[0].lower() == 'rem' and line[0] in "rR"
Out[191]: False
表明你的担心是没有根据的。你需要一个解释吗?或者你可以自己弄明白
PS布尔表达式的第二部分是绝对冗余的小实验:
In [190]: line = 'remember_last = True'
In [191]: line.split(None, 1)[0].lower() == 'rem' and line[0] in "rR"
Out[191]: False
表明你的担心是没有根据的。你需要一个解释吗?或者你可以自己弄明白
PS布尔表达式的第二部分是绝对冗余的它受编程语言BASIC的影响
REM
表示备注并引入备注。此外,注释
应被识别为注释。其他注释语句是#
和代码>它受编程语言BASIC的影响REM
表示备注并引入备注。此外,注释
应被识别为注释。其他注释语句是#
和代码>“布尔表达式的第二部分是绝对冗余的”-如果行以空格开头,则不会这样做。@确定吗?!在[192]:“此行以空格开头”。拆分(无,1)出[192]:[“此”,“行以空格开头”]行在配置文件中不应以空格开头?!是的,拆分将消除开头的空白,因此行[0]
将再次检查它,以确保该行实际上以rem
开头,而不是一些空白。配置文件的行不应该有前导空格。如果一行有一个前导空格,那就是格式不正确的配置文件。你说第二部分是多余的,我给了你一个例子。Python的配置解析器也支持前导空格,就像它一样。“布尔表达式的第二部分是绝对冗余的”-如果行以空格开头就不支持。@poke你确定吗?!在[192]:“此行以空格开头”。拆分(无,1)出[192]:[“此”,“行以空格开头”]行在配置文件中不应以空格开头?!是的,拆分将消除开头的空白,因此行[0]
将再次检查它,以确保该行实际上以rem
开头,而不是一些空白。配置文件的行不应该有前导空格。如果一行有一个前导空格,那就是格式不正确的配置文件。你说第二部分是多余的,我给了你一个例子。Python的配置解析器也很好地支持前导空格。