Serbis
Июнь 24, 2012 13:59:21
Почему при такой конструкции файл открывается только один раз, а повторная попытка открыть его приводит к ошибке - файл не найден.
def getConf(self, opt):
line = map(lambda s: s.replace('\n', ''), open('data/createa.conf', 'r').readlines())
l = []
for i in range(len(line)):
l.append(line[i].split('='))
return l[l[0].index(opt)][1]
newca9h
Июнь 24, 2012 14:27:21
Может его(файл) закрыть нужно по окончанию работы с ним?
Serbis
Июнь 24, 2012 14:37:46
newca9h
Может его(файл) закрыть нужно по окончанию работы с ним?
Да вот я тоже думаю проблема в этом, но как это сделать не имея его дескриптора?
Serbis
Июнь 24, 2012 14:57:24
Нет, проблема оказывается не в этом, так как создал дескриптор файла, закрыл его, а при повторном открытии вылезла та же ошибка.
Serbis
Июнь 24, 2012 14:57:24
Нет, проблема оказывается не в этом, так как создал дескриптор файла, закрыл его, а при повторном открытии вылезла та же ошибка.
fata1ex
Июнь 24, 2012 15:03:54
Знакомый код :) Не надо бездумно копировать то, что вам предложили, не зная о вашей конкретной задаче.
def getConf(filename):
with open(filename, 'r') as conf:
return dict(opt.split('=', 1) for opt in conf.read().splitlines())
config = getConf('config.conf')
# config[opt] = value
Кстати, для парсинга таких файлов есть специальные модули -
configparser.
reclosedev
Июнь 24, 2012 15:12:10
Может вы дальше в коде меняете текущую директорию? (os.chdir)
upd:
Убрал код. У fata1ex оптимальный, только в split ограничение добавить.
Serbis
Июнь 24, 2012 15:39:21
Блиин, я ведь действительно делаю chdir, да еще в опциях вызываю свою же функцию… Похоже пора заканчивать бухать…
fata1ex
Июнь 24, 2012 15:41:58
Serbis
Похоже пора заканчивать бухать…
Python.su. Направляем на путь истинный.
reclosedev
Может вы дальше в коде меняете текущую директорию? (os.chdir)
КАК?!
reclosedev
Июнь 24, 2012 17:04:42
fata1ex
КАК?!
Только на ТНТ! “Экстрасенсы ведут расследование”