Форум сайта python.su
0
вот кусок кода
f=open('pica/data/pica.conf', 'r') f2=open('conffile.py', 'w') f2.write(f.read()) f2.close() f.close() import conffile print PICA_LOG_FILE
PICA_CACHE_DIR="/var/pica/cache" PICA_TEST_DIR="var/pica/tests"
Офлайн
20
Потому что область видимости переменной PICA_LOG_FILE ограничивается модулем conffile?
Офлайн
0
отлично, это можно как то исправить? или прийдется решать задачу иначе?
Офлайн
173
Python Tutorial. 6. Modules
Т.е. можно написать:
import conffile print conffile.PICA_LOG_FILE
from conffile import PICA_LOG_FILE print PICA_LOG_FILE
from conffile import * print PICA_LOG_FILE
Офлайн
20
Можно попробовать
print conffile.PICA_LOG_FILE
Офлайн
3
Вообще очень имеет смысл написать свой класс - унаследовать хотя бы от упомянутого ConfigParser и реализовать в нем основной функционал - значения по умолчанию, проверка на существование обязательных параметров, проверка значения параметров итд. Конфиг по определению редактируем, и, соответственно, может содержать ошибочные или просто несоответствующие реалиям значения. Отлавливать это когда-нибудь потом - занудно и непроизводительно; стоит использовать примерно такую парадигму: “объект конфига с неверными значениями создан быть не может”, то есть в созданном объекте конфига все параметры имеют такие значения, которые не нарушат функционирование основного кода.
Офлайн
253
Soteric
сомнительный способ читать конфигурацию
Отредактировано doza_and (Май 6, 2012 09:28:07)
Офлайн
3
doza_and, многострочные литералы c:+ все таки. А зачем в конфиге циклы? Может весчь нужная а я не в курсе 
безопасность i: приемлема только на уровне примеров для изучающих язык. Ибо это не дырка в этом смысле а звездные врата какие-то 
Офлайн
173
Мне нравится как предложено в Flask - Configuring from Files
Т.е. настройки из обычных Python файлов можно переопределить текстовыми конфигми.
В десктоп проектах показались удобными JSON, Yaml или стандартные средства гуи тулкита, например QSettings в Qt.
Офлайн
3
В любом случае как минимум 2 большие разницы в околоконфижных вопросах есть между редактируемыми в текстовом редакторе конфигами и редактируемыми в собственно приложении; что и должно определять выбор средств на начальном этапе.
Офлайн