Найти - Пользователи
Полная версия: Ищу партнера или наставника
Начало » Центр помощи » Ищу партнера или наставника
1 2 3 4 5 6
defond
Так же прошу высказать мнение - имеет ли смысл просто использовать configparser? Или все же лучше для своей программы написать свой парсер конфигурации? Все таки у меня не настолько много настроек в программе…
Shaman
Для хранения настроек можно использовать ini / xml / yaml. При простой структуре конфигурации проще всего использовать ini на configparser.
4kpt
Shaman
Абсолютно согласен. Тем паче, что файлы *.ini configparser(a) потом может свободно читать программа на другом языке…
defond
Ок. Спасибо.

Смутило вот такое замечание.

Структура конфигурации простая, смысла подтягивать xml для нее нет.

Направление понял - спасибо огромное!
4kpt
defond
У меня единственный вопрос.
Зачем в файл конфигурации сохранять unicode? Если нужны русские символы, можно обойтись и без unicode. Неужели такие специфические задачи, что нужен именно набор unicode - символов?
defond
Так сложилось, что на обоих машинах у меня стоит Вин7. На Питоне 2.7.5 у меня проблемы с кодировкой. Мне уже предлагали способы решения, но ничего не помогает. А так как я не знаю в чем проблема и как она возникает, я опасаюсь решений, которые изначально имеют проблемы с кодировкой.

А так Вы правы конечно, на UTF свет клином не сошелся.
defond
4kpt
Зачем в файл конфигурации сохранять unicode? Если нужны русские символы, можно обойтись и без unicode. Неужели такие специфические задачи, что нужен именно набор unicode - символов?

Если у Вас есть свое мнение, какую кодировку лучше всего использовать - подскажите.

Вы поймите, у Вас и Ваших коллег по форуму несравнимо больше не только знаний, но и опыта. Поэтому, если у Вас есть возможность - подскажите.
py.user.next
defond
Может кто-нибудь привести пример, как он решал вопрос работы программы с файлом параметров?
я делал через csv и xml, второе неудобно для ручного редактирования, потому что в xml многие символы являются служебными и их нужно писать в виде символических ссылок на сущности (" и подобные)

defond
Все таки у меня не настолько много настроек в программе…
это никогда не должно быть аргументом, всегда представляй, что их 10000

4kpt
Зачем в файл конфигурации сохранять unicode? Если нужны русские символы, можно обойтись и без unicode.
юникод нужен не только для русских букв, он нужен для любых символов
если есть возможность сделать юникод сразу, то нужно его сделать

defond
А так как я не знаю в чем проблема и как она возникает, я опасаюсь решений, которые изначально имеют проблемы с кодировкой.
и правильно делаешь
print('\u4020')
запиши это на винде - и скрипт выпадет, потому что там не учтён юникод (используется однобайтовая кодировка из прошлого века)
defond
py.user.next
это никогда не должно быть аргументом, всегда представляй, что их 10000

Согласен. Буду исходить из этого.

py.user.next
юникод нужен не только для русских букв, он нужен для любых символов
если есть возможность сделать юникод сразу, то нужно его сделать

Я попробовал библиотеку configparser - отработала без проблем.

Буду пробовать работать с ней, но буду учитывать возможность ошибки.

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>

csv в данном примере не подходит, т.к. 100% часть пользователей будут работать напрямую с файлами. XML лучше, т.к. более наглядна структура данных. Но править согласен - сложнее.

defond
Вопрос.

Написал пробный класс. Делаю проверку на наличие файла конфигурации. В случае его отсутствия, создается новый с дефолтными настройками.

Как сделать так, чтобы после создания нового дефолтного файла конфигурации класс перезапускался?

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()
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