【问题标题】:Comma-separated values in ini config filesini 配置文件中的逗号分隔值
【发布时间】:2013-10-15 10:14:55
【问题描述】:

当我在 Linux 中使用 python 解析它时,如何将输入作为 ini 文件中的逗号分隔值。

您会在下面找到MWE

#!/usr/bin/env python

import configparser

def parse_config(file):
        global config_dictionary
        config_dictionary={}
        config=configparser.ConfigParser()
        config.read(file)
        for section in config.sections():
                config_dictionary[section] = {}
                for option in config.options(section):
                        config_dictionary[section][option] = config.get(section, option)
        return config_dictionary

def main():
        config_path = 'test.ini'
        config_dict=parse_config(config_path)
        mapping = config_dict['Options']['initialassignment']
        mapping = list(mapping)
        print mapping

if __name__ == "__main__":
        main()

test.ini 文件是

[Options]
initialAssignment=0,1,2,3

【问题讨论】:

    标签: python ini


    【解决方案1】:
    mapping = config_dict['Options']['initialassignment']
    mapping = list(mapping)
    mapping = [int(x) for x in mapping if x != ","]
    print mapping
    

    这绝对不是最干净的方式。但它有效。任何建议都会有所帮助!谢谢

    【讨论】:

      【解决方案2】:

      在您的 ini 文件中使用引号:

      [选项]

      initialAssignment="0,1,2,3"

      这将禁用 ',' 作为字段分隔符。

      【讨论】:

        【解决方案3】:

        您可以使用split() 方法和列表推导来拆分逗号分隔值并将其转换为列表:

        mapping = config_dict['Options']['initialassignment']
        mapping = list(mapping)
        mapping = [int(z) for z in (mapping.split(','))]
        

        【讨论】:

        • 社区encourages 在代码旁边添加解释,而不是纯粹基于代码的答案。正如here 所解释的那样:“虽然此代码可能会回答问题,但提供有关 为什么 和/或 如何 此代码回答问题的附加上下文会提高其长期价值。 "
        猜你喜欢
        • 2017-11-16
        • 1970-01-01
        • 2012-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-27
        相关资源
        最近更新 更多