Уведомления

Группа в Telegram: @pythonsu

#1 Июль 15, 2013 09:20:39

defond
Зарегистрирован: 2013-06-12
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Ищу партнера или наставника

Так же прошу высказать мнение - имеет ли смысл просто использовать configparser? Или все же лучше для своей программы написать свой парсер конфигурации? Все таки у меня не настолько много настроек в программе…

Офлайн

#2 Июль 15, 2013 10:39:30

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Ищу партнера или наставника

Для хранения настроек можно использовать ini / xml / yaml. При простой структуре конфигурации проще всего использовать ini на configparser.

Офлайн

#3 Июль 15, 2013 10:44:04

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Ищу партнера или наставника

Shaman
Абсолютно согласен. Тем паче, что файлы *.ini configparser(a) потом может свободно читать программа на другом языке…



Отредактировано 4kpt (Июль 15, 2013 10:44:20)

Офлайн

#4 Июль 15, 2013 11:56:58

defond
Зарегистрирован: 2013-06-12
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Ищу партнера или наставника

Ок. Спасибо.

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

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

Направление понял - спасибо огромное!

Офлайн

#5 Июль 15, 2013 12:25:39

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Ищу партнера или наставника

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



Офлайн

#6 Июль 15, 2013 12:33:09

defond
Зарегистрирован: 2013-06-12
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Ищу партнера или наставника

Так сложилось, что на обоих машинах у меня стоит Вин7. На Питоне 2.7.5 у меня проблемы с кодировкой. Мне уже предлагали способы решения, но ничего не помогает. А так как я не знаю в чем проблема и как она возникает, я опасаюсь решений, которые изначально имеют проблемы с кодировкой.

А так Вы правы конечно, на UTF свет клином не сошелся.

Офлайн

#7 Июль 15, 2013 12:40:32

defond
Зарегистрирован: 2013-06-12
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Ищу партнера или наставника

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

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

Вы поймите, у Вас и Ваших коллег по форуму несравнимо больше не только знаний, но и опыта. Поэтому, если у Вас есть возможность - подскажите.

Офлайн

#8 Июль 15, 2013 20:50:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Ищу партнера или наставника

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

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

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

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



Отредактировано py.user.next (Июль 15, 2013 20:59:06)

Офлайн

#9 Июль 15, 2013 21:50:57

defond
Зарегистрирован: 2013-06-12
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Ищу партнера или наставника

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 лучше, т.к. более наглядна структура данных. Но править согласен - сложнее.

Офлайн

#10 Июль 16, 2013 10:28:31

defond
Зарегистрирован: 2013-06-12
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Ищу партнера или наставника

Вопрос.

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

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

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

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version