【问题标题】:How can a python configuration files' (INI file) key's value be appended by number in increasing order?python 配置文件(INI 文件)键的值如何按数字递增顺序附加?
【发布时间】:2021-09-13 16:23:13
【问题描述】:

我想将每个列表的值分配给一个键,该键按递增的顺序附加数字,直到列表的大小。

list_of_lists = [[1,2,3],[7,4],[1]]

INI 配置文件输出示例:

[List1]
Signal1 = 1
Signal2 = 2
Signal3 = 3

[List2]
Signal1 = 7
Signal2 = 4

[List3]
Signal1 = 1

【问题讨论】:

    标签: python nested-lists configuration-files ini


    【解决方案1】:

    直截了当的方式:

    def ll_to_string(ll):
        s = ''
        for li, l in enumerate(ll):
            s += f'[List{li + 1}]\n'
            for i, n in enumerate(l):
                s += f'Signal{i + 1} = {n}\n'
            s += '\n'
        return s
    
    
    def write_all(all, file_name):
        with open(file_name, "w", encoding='utf-8') as fw:
            fw.write(all)
    
    
    list_of_lists = [[1, 2, 3], [7, 4], [1]]
    all = ll_to_string(list_of_lists)
    # print(all)
    write_all(all, 'out.txt')
    

    如果你想使用configparser.py 模块:

    def config_ll_to_ini(ll, file_name):
        config = configparser.ConfigParser()
        for li, l in enumerate(ll):
            d = {}
            for i, n in enumerate(l):
                d[f'Signal{i + 1}'] = n
            config[f'List{li + 1}'] = d
        with open(file_name, 'w') as configfile:
            config.write(configfile)
    
    
    # usage
    config_ll_to_ini(list_of_lists, 'cfg.ini')
    

    在决定使用 INI 格式之前,请三思,现在大多数应用程序使用 jsonxmlyaml等等,而 INI 似乎已经过时了。

    【讨论】:

    • 嗨,雷谢谢你的回答,它非常适用于 .txt 文件。但我希望使用 python 中的 configparser.py 库将它写在 .ini 文件中,这样它也可以很容易地读回。
    猜你喜欢
    • 2021-07-19
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    • 2013-02-17
    • 2021-06-07
    • 1970-01-01
    • 2012-09-10
    • 2019-02-08
    相关资源
    最近更新 更多