Найти - Пользователи
Полная версия: Настройки программы
Начало » Mobile Python » Настройки программы
1
MDN
Доброго времени суток форумчани.
Вопрос больше общепознавательный… мне просто стало интересно, как вы храните настройки ваших программ, если придусмотрено сохранение настроек в ваших приложениях для телефонов? Кто чем пользуется, может это ini файлы, или xml, или может pickler?
Ksench
ini с возможностью считывания и преобразования в словарь и обратно
Ksench
Пример:

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
MDN
По моему pickler в данном примере удобней будет
igor.kaist
Лично я делаю достаточно просто, в том случает, если настроек не больше пары десяткой (больше просто не нужно было):
В программе завожу словарь с настройками, где ключи это названия настроек. Использовать в программе достаточно легко ( if not self.settings:return ). Сохраняю и читаю тупым repr и eval. Плюс еще в том, что ручками файл настроек достаточно легко редактировать.
Если настройки достаточно активно используются, можно и класс - обертку написать, для приведения к виду if not my_settings.enable:return
nJLyTo
Я тоже когда-то хотел создать такую тему, но подумав, решил пойти своим путем, тогда и появился этот класс:
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'
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