Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 24, 2012 21:07:59

Serbis
От:
Зарегистрирован: 2012-02-13
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Повторное открытие файла

fata1ex
Serbis
Похоже пора заканчивать бухать…
Python.su. Направляем на путь истинный.

reclosedev
Может вы дальше в коде меняете текущую директорию? (os.chdir)
КАК?!
Вот так
os.chdir("%s" % (self.getConf('certificate_dir')))
Поэтому первый раз файл нормально открывается, а второй раз ссылается на несуществующее место.
fata1ex
Да знаю я про configparser, пользовался им одно время. Потом пришел к выводу что он никакой выгоды не дает, а только усложняет код.

А говоря о том, что вызывается файл каждый раз, так это потому, что это просто модуль. Получение всего конфига в основной программе приведет к очень большому нагромождению кода и очередной путаницей с обращением к членам вышестоящего класса. А так все просто, модуль начал работать, тут же свою часть конфига забрал и все.

Так что код вообще не пришлось менять.



Офлайн

#2 Июнь 24, 2012 21:23:27

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Повторное открытие файла

Serbis, вопрос был не в том, как сменить текущую директорию, а в том, как reclosedev смог угадать проблему. Ну а насчет открытия файла и тд, дело, разумеется, ваше.

os.chdir("%s" % (self.getConf('certificate_dir')))
=>
os.chdir(self.getConf('certificate_dir'))



Отредактировано fata1ex (Июнь 24, 2012 21:29:51)

Офлайн

#3 Июнь 25, 2012 00:27:33

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Повторное открытие файла

Проще всего делать так:

import os.path

ROOT = os.path.dirname(os.path.realpath(__file__))
CONFIG_FILE = os.path.join(ROOT, 'data', 'config.conf')

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version