Уведомления

Группа в Telegram: @pythonsu

#1 Март 12, 2010 21:42:41

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

Настройки программы

Доброго времени суток форумчани.
Вопрос больше общепознавательный… мне просто стало интересно, как вы храните настройки ваших программ, если придусмотрено сохранение настроек в ваших приложениях для телефонов? Кто чем пользуется, может это ini файлы, или xml, или может pickler?



Офлайн

#2 Март 12, 2010 22:09:45

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

Настройки программы

ini с возможностью считывания и преобразования в словарь и обратно



Офлайн

#3 Март 12, 2010 22:19:51

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

Настройки программы

Пример:

def save(path,dict):
file=open(path,"wb")
for x in dict.items():
file.write(x[0]+"::"+repr(x[1])+"\n")
file.close()
def load(path):
file=open(path,"rb")
data=file.read()
file.close()
dict={}
for x in data.split("\n"):
if x.count("::"):
values=x.split("::")
dict[values[0]]=eval(values[1])
return dict
ключами могут быть только строки,значениями:
u“”,“”,{},(),,None,False и True преобразуется в 0 и 1



Отредактировано (Март 12, 2010 22:29:01)

Офлайн

#4 Март 12, 2010 23:51:07

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

Настройки программы

По моему pickler в данном примере удобней будет



Офлайн

#5 Март 13, 2010 11:39:35

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Настройки программы

Лично я делаю достаточно просто, в том случает, если настроек не больше пары десяткой (больше просто не нужно было):
В программе завожу словарь с настройками, где ключи это названия настроек. Использовать в программе достаточно легко ( if not self.settings:return ). Сохраняю и читаю тупым repr и eval. Плюс еще в том, что ручками файл настроек достаточно легко редактировать.
Если настройки достаточно активно используются, можно и класс - обертку написать, для приведения к виду if not my_settings.enable:return



Офлайн

#6 Март 15, 2010 17:44:56

nJLyTo
От:
Зарегистрирован: 2008-11-11
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

Настройки программы

Я тоже когда-то хотел создать такую тему, но подумав, решил пойти своим путем, тогда и появился этот класс:

import os

class Settings:
def __init__(self):
try:
f = open(u'c:\\data\\MyApp\\options.ini', 'rb')
self.__dict__ = eval(f.read())
f.close()
except (IOError, SyntaxError), (code, descr):
os.path.exists(u'c:\\data\\MyApp') or os.makedirs(u'c:\\data\\MyApp')
# default settings
self.__dict__ = {
'name': u'Charles',
'second_name': u'Chaplin'
}

def __setattr__(self, key, value):
self.__dict__[key] = value
try:
f = open(u'c:\\data\\MyApp\\options.ini', 'wb')
f.write(repr(self.__dict__))
f.close()
except IOError, (code, descr):
pass
Работать с ним проще простого, для этого сначало лишь нужно создать экземпляр
s = Settings()
А потом обращаться к его атрибутам
print s.second_name
print s.name
При присвоении или изменении атрибута, программа автоматически все сохранит
s.second_name = u'John'
s.address = u'Some street'



Отредактировано (Март 15, 2010 17:51:23)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version