Last script version (2010-05-21 12:51):
# -*- coding: cp1251 -*-
import re
regexStart = re.compile('\[\[')
regexEnd = re.compile('\]\]')
regexSection = re.compile(r''' *\b[a-zA-Z_]+\b *''')
dictConf={}
sectionBit = False
try :
for line in open('file.ini','r'):
stripLine = line.strip()
if regexStart.search(stripLine) and regexEnd.search(
(
Read more... )
Comments 6
[[config]]
controlPort=8900
idleTimeout=20
[[admin]]
login=petrovich
email=petrovich@zavod.ru
password=secret
[ [1 config// ]aaa
controlPort=11111
idleTimeout=000000
[[555admin]]
login=petrovich
email=petrovich@zavod.ru=12345678
password=secret
Лёня
Reply
Да, есть косяк с
[ [1 config// ]aaa
controlPort=11111
idleTimeout=000000
все запихал в раздел [[admin]]
Reply
regex = re.compile('^\[\[ *[a-zA-Z_]+ *\]\]$')
Добавил проверку на количество слагаемых, убирает проблему с неправильным именем [[имя_секции]], но добавило проблему одиночными строками внутри секции (при разбиении по "=" длина такой строки равна 1).
elif sectionBit:
splitLine = stripLine.split('=')
print splitLine, len(splitLine)
if len(splitLine) < 2 or len(splitLine) > 2:
sectionBit = False
# здесь добавить исключение (остановка парсера, возврат
# неправильной строки).
elif len(splitLine) == 2 and splitLine[0] != '':
dictConf[indexConf][splitLine[0].strip()] = splitLine[1].strip()
Reply
Reply
Reply
[[config]]
controlPort=8900
idleTimeout=20
[[admin]]
login=petrovich
email
email=petrovich@zavod.ru
password=secret
[[555admin]]
login=petrovich1
email=petrovich@zavod.ru=12345678
password=secret1
[ [1 config// ]aaa
controlPort=11111
idleTimeout=000000
Какова вероятность что секция [[config]] превратится в [ [1 config// ]aaa?
Reply
Leave a comment