Форум сайта python.su
0
Так же прошу высказать мнение - имеет ли смысл просто использовать configparser? Или все же лучше для своей программы написать свой парсер конфигурации? Все таки у меня не настолько много настроек в программе…
Офлайн
88
Для хранения настроек можно использовать ini / xml / yaml. При простой структуре конфигурации проще всего использовать ini на configparser.
Офлайн
63
Shaman
Абсолютно согласен. Тем паче, что файлы *.ini configparser(a) потом может свободно читать программа на другом языке…
Отредактировано 4kpt (Июль 15, 2013 10:44:20)
Офлайн
0
Ок. Спасибо.
Смутило вот такое замечание.
Структура конфигурации простая, смысла подтягивать xml для нее нет.
Направление понял - спасибо огромное!
Офлайн
63
defond
У меня единственный вопрос.
Зачем в файл конфигурации сохранять unicode? Если нужны русские символы, можно обойтись и без unicode. Неужели такие специфические задачи, что нужен именно набор unicode - символов?
Офлайн
0
Так сложилось, что на обоих машинах у меня стоит Вин7. На Питоне 2.7.5 у меня проблемы с кодировкой. Мне уже предлагали способы решения, но ничего не помогает. А так как я не знаю в чем проблема и как она возникает, я опасаюсь решений, которые изначально имеют проблемы с кодировкой.
А так Вы правы конечно, на UTF свет клином не сошелся.
Офлайн
0
4kpt
Зачем в файл конфигурации сохранять unicode? Если нужны русские символы, можно обойтись и без unicode. Неужели такие специфические задачи, что нужен именно набор unicode - символов?
Офлайн
857
defondя делал через csv и xml, второе неудобно для ручного редактирования, потому что в xml многие символы являются служебными и их нужно писать в виде символических ссылок на сущности (" и подобные)
Может кто-нибудь привести пример, как он решал вопрос работы программы с файлом параметров?
defondэто никогда не должно быть аргументом, всегда представляй, что их 10000
Все таки у меня не настолько много настроек в программе…
4kptюникод нужен не только для русских букв, он нужен для любых символов
Зачем в файл конфигурации сохранять unicode? Если нужны русские символы, можно обойтись и без unicode.
defondи правильно делаешь
А так как я не знаю в чем проблема и как она возникает, я опасаюсь решений, которые изначально имеют проблемы с кодировкой.
print('\u4020')
Отредактировано py.user.next (Июль 15, 2013 20:59:06)
Офлайн
0
py.user.next
это никогда не должно быть аргументом, всегда представляй, что их 10000
py.user.next
юникод нужен не только для русских букв, он нужен для любых символов
если есть возможность сделать юникод сразу, то нужно его сделать
py.user.next
я делал через csv и xml, второе неудобно для ручного редактирования
<Скорость> <apPossibleMaxSpeed_P>600</apPossibleMaxSpeed_P> - <!-- максимально возможная скорость ЛА за счет тяги двигателя --> <speed_limits_rulenie>15</speed_limits_rulenie> - <!-- Максимальная скорость руления --> <speed_limits_V1>95</speed_limits_V1> - <!-- Скорость принятия решения на взлете --> <speed_limits_Vr>140</speed_limits_Vr> - <!-- Скорость отрыва от ВПП --> <speed_limits_max_Va>280</speed_limits_max_Va> - <!-- Максимальная маневренная скорость --> <speed_limits_max_Vle>275</speed_limits_max_Vle> - <!-- Максимальная скорость полета с выпущенными шасси --> <speed_limits_max_Vne>400</speed_limits_max_Vne> - <!-- Непревышаемая скорость. Максимальная скорость по прочности планера --> - <Сваливание_Vs> <speed_limits_Vsp>151</speed_limits_Vsp> - <!-- Скорость сваливания по весу --> <speed_limits_Vs2>135</speed_limits_Vs2> - <!-- Скорость сваливания в посадочной конфигурации (шасси и закрылки) --> </Сваливание_Vs>
Офлайн
0
Вопрос.
Написал пробный класс. Делаю проверку на наличие файла конфигурации. В случае его отсутствия, создается новый с дефолтными настройками.
Как сделать так, чтобы после создания нового дефолтного файла конфигурации класс перезапускался?
import ConfigParser Config = ConfigParser.ConfigParser() import codecs class CofigurateGlobal(object): def __init__(self): # Проверяем наличие файла конфигурации import os from os.path import exists auditFileConfig = os.path.exists('./sys/Parameters.ini') if auditFileConfig == True: print auditFileConfig else: # Создаем новый файл конфигурации cfgfile = codecs.open('./sys/Parameters.ini','w', 'utf-8') Config.add_section(u'Global') Config.set(u'Global',u'Версия',u'test 0.1') Config.add_section(u'Личные') Config.set(u'Личные',u'Lang', u'ru') Config.write(cfgfile) cfgfile.close() CofigurateGlobal()
Офлайн