在python中读取逗号分隔的ini文件?

时间:2017-06-14 04:06:26

标签: python ini

我有一个ini文件

[default]
hosts=030, 031, 032

我有逗号分隔值。我可以用简单的

读取整个值
comma_separated_values=config['default']['hosts']

这样我就可以获得变量中的所有值。但是我如何迭代这个INI文件,以便我可以将所有这些值存储为一个相当可变的列表。

4 个答案:

答案 0 :(得分:2)

由于它们是以字符串形式读入的,因此您应该能够将其存储在列表中

values_list = config['default']['hosts'].split(',')

答案 1 :(得分:2)

假设值必须是整数,您可能希望在从逗号分隔的字符串中提取列表后将它们转换为整数。

继Colwin的回答之后:

values_list = [int(str_val) for str_val in config['default']['hosts'].split(',')]

或者,如果每个数字的零前缀应该表明它们是八进制:

values_list = [int(str_val, 8) for str_val in config['default']['hosts'].split(',')]

答案 2 :(得分:2)

您可以按如下方式进行概括:

import ConfigParser
import io

# Load the configuration file
def read_configFile():
    config = ConfigParser.RawConfigParser(allow_no_value=True)
    config.read("config.ini")
    # List all contents
    print("List all contents")
    for section in config.sections():
        #print("Section: %s" % section)
        for options in config.options(section):
            if (options == 'port'):
                a = config.get(section,options).split(',')
                for i in range(len(a)):
                    print("%s:::%s" % (options,  a[i]))

            else:
                print("%s:::%s" % (options,  config.get(section, options)))

read_configFile()


config.ini
[mysql]
host=localhost
user=root
passwd=my secret password
db=write-math
port=1,2,3,4,5

[other]
preprocessing_queue = ["preprocessing.scale_and_center",
"preprocessing.dot_reduction",
"preprocessing.connect_lines"]

use_anonymous=yes

答案 3 :(得分:0)

您可以阅读文件的内容并使用split(',')将其拆分。请尝试使用以下代码。

with open('#INI FILE') as f:
    lines = f.read().split(',')
print(lines) # Check your output
print (type(lines)) # Check the type [It will return a list]