У меня такое чувство, что я глуп. Учитывая этот INI-файл:python configparser висит тихо
[main]
source1 = ./testing/sdir1
sync1 = ./testing/sydir1
archive1 = ./testing/adir1
source2 = ./testing/sdir2
sync2 = ./testing/sydir2
archive2 = ./testing/adir2
[logging]
log_dir = .
log_file = pixelsync.log
log_level = DEBUG
Следующий код висит:
import ConfigParser
CONFIG_FILE = 'pixelsync.ini'
def parse_config() :
"""read details from the config file"""
global CONFIG_FILE
config = ConfigParser.SafeConfigParser()
config.read(CONFIG_FILE)
index = 1
while True :
if config.has_option('main', 'source' + str(index)) and \
config.has_option('main', 'sync' + str(index)) and \
config.has_option('main', 'archive' + str(index)) :
result = (config.get('main', 'source' + str(index)),
config.get('main', 'sync' + str(index)),
config.get('main', 'archive' + str(index)))
index += 1
else :
if index == 1 :
print "could not setup any trios from the config file. exiting."
sys.exit(1)
return result
if __name__ == '__main__' :
options = parse_config()
Он висит на 'если' п.
Если я заменить 'если' положение с:
if config.has_option('main', 'source1') and \
config.has_option('main', 'sync1') and \
config.has_option('main', 'archive1') :
он не вешает. (Не делать то, что я хочу, так как мне нужно перебрать произвольное число наборов из трех, но не молча повесить.
Python v2.7.3 на Ubuntu 12.04 (Precise), 32bit.
ok. Спасибо, что указал глупо. Я обвиняю 2 часа сна с прошлой ночи. – Jason
Я оставил «else: break» из внутреннего оператора if. – Jason