Python 3 ConfigParser 也读取内联注释

Ale*_*chi 3 parsing config configparser python-3.x

我有以下代码,其中filePath是磁盘上 cfg 文件的路径。当我解析它时,它还会读取内联注释(带有空格 + 的注释";")。

结果的一些行:

xlsx:是的;评论在这里

html:是的;评论在这里

它应该是:

xlsx:是的

html:是的

def ParseFile(filePath):
    """this function returns the parsed CFG file"""
    parser = configparser.ConfigParser()
    print("Reading config file from %s" % filePath)
    parser.read(filePath)
    for section in parser.sections():
        print("[ SECTION: %s ]" % section)
        for option in parser.options(section):
            print("%s:%s" % (option, parser.get(section, option)))
Run Code Online (Sandbox Code Playgroud)

ele*_*han 5

默认情况下不启用内联注释。

从文档中的一个例子:

[You can use comments]
# like this
; or this

# By default only in an empty line.
# Inline comments can be harmful because they prevent users
# from using the delimiting characters as parts of values.
# That being said, this can be customized.
Run Code Online (Sandbox Code Playgroud)

允许内联注释';':

parser = configparser.ConfigParser(inline_comment_prefixes=';')
Run Code Online (Sandbox Code Playgroud)