Найти - Пользователи
Полная версия: Повторное открытие файла
Начало » Python для новичков » Повторное открытие файла
1 2
Serbis
Почему при такой конструкции файл открывается только один раз, а повторная попытка открыть его приводит к ошибке - файл не найден.

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
Может его(файл) закрыть нужно по окончанию работы с ним?
Serbis
newca9h
Может его(файл) закрыть нужно по окончанию работы с ним?
Да вот я тоже думаю проблема в этом, но как это сделать не имея его дескриптора?
Serbis
Нет, проблема оказывается не в этом, так как создал дескриптор файла, закрыл его, а при повторном открытии вылезла та же ошибка.
Serbis
Нет, проблема оказывается не в этом, так как создал дескриптор файла, закрыл его, а при повторном открытии вылезла та же ошибка.
fata1ex
Знакомый код :) Не надо бездумно копировать то, что вам предложили, не зная о вашей конкретной задаче.
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
Может вы дальше в коде меняете текущую директорию? (os.chdir)

upd:
Убрал код. У fata1ex оптимальный, только в split ограничение добавить.
Serbis
Блиин, я ведь действительно делаю chdir, да еще в опциях вызываю свою же функцию… Похоже пора заканчивать бухать…
fata1ex
Serbis
Похоже пора заканчивать бухать…
Python.su. Направляем на путь истинный.

reclosedev
Может вы дальше в коде меняете текущую директорию? (os.chdir)
КАК?!
reclosedev
fata1ex
КАК?!
Только на ТНТ! “Экстрасенсы ведут расследование”
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB