ConfigParser的新行?

JP2*_*P29 8 python

我有一个配置文件使用configParser:

<br>
[ section one ]<br>
one = Y,Z,X <br><br>
[EG 2]<br>
ias = X,Y,Z<br>
Run Code Online (Sandbox Code Playgroud)

我的程序可以很好地阅读和处理这些值.

但是有些部分会非常大.我需要一个配置文件,允许值在一个新行上,如下所示:

[EG SECTION]<br>
EG=<br>
item 1 <br>
item 2 <br>
item 3<br>
etc...
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我有一个简单的函数,使用string.split()显然现在设置为逗号的值的分隔符(或分隔符).我试过了逃避字符串\n不起作用.

有谁知道这是否可以使用python的配置解析器?
http://docs.python.org/library/configparser.html

# We need to extract data from the config 
def getFromConfig(currentTeam, section, value, delimeter):
    cp = ConfigParser.ConfigParser()
    fileName = getFileName(currentTeam)
    cp.read(fileName)
    try:
        returnedString = cp.get(section, value)
    except: # The config file could be corrupted
        print( "Error reading " + fileName + " configuration file." )
        sys.exit(1) #Stop us from crashing later
    if delimeter != "": # We may not need to split
        returnedList = returnedString.split(delimeter)
    return returnedList
Run Code Online (Sandbox Code Playgroud)

我会用这个:

taskStrings = list(getFromConfig(teamName, "Y","Z",","))
Run Code Online (Sandbox Code Playgroud)

mar*_*eau 11

ConfigParser _read()方法的docstring说:

连续性由嵌入的换行符表示,然后是空格.

或者(正如Python 3中的版本所示):

值可以跨越多行,只要它们比值的第一行缩进更深.

此功能提供了一种将值拆分并在多行中"继续"它们的方法.例如,假设您有一个名为的配置文件'test.ini',其中包含:

[EG SECTION]<br>
EG=<br>
  item 1<br>
  item 2<br>
  item 3<br>
Run Code Online (Sandbox Code Playgroud)

你可以阅读的价值EGEG SECTION与这样的代码清单:

try:
    import ConfigParser as configparser
except ImportError:  # Python 3
    import configparser

cp = configparser.ConfigParser()
cp.read('test.ini')

eg = cp.get('EG SECTION', 'EG')
print(repr(eg))  # -> '\nitem 1\nitem 2\nitem 3'

cleaned = [item for item in eg.strip().split('\n')]
print(cleaned)  # -> ['item 1', 'item 2', 'item 3']
Run Code Online (Sandbox Code Playgroud)