Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在ConfigParser中,为什么以'REM'开头的行将被忽略?_Python_Config - Fatal编程技术网

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的配置解析器也很好地支持前导空格。