Уведомления

Группа в Telegram: @pythonsu

#1 Май 30, 2013 15:16:43

avo9
От:
Зарегистрирован: 2011-01-09
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Как лучше создать файл настроек?

У меня есть скрипт немного автоматизирующий сборку проекта: переименование и перемещение файлов, изменения в коде, и тд. И есть фрагменты коде которые было бы хорошо вынести в отдельный файл, поскольку во-первых занимают очень много места, а во-вторых нужно дать возможность конечному пользователю возможность их изменять. Вот примеры кода:

...
PROJECT_PATH = os.path.normpath(os.getcwd() + "\\..\\eclipse\\")
WWW_PATH = os.path.normpath(PROJECT_PATH + "\\assets\\www\\")
RES_PATH = os.path.normpath(PROJECT_PATH + "\\res\\")
...
file_changes = [{"action": shutil.copy,
                "from": "D:\\_IMAGES\\",
                "to": WWW_PATH + "\\images\\",
                "files": ["logo.png",],},
               {"action": shutil.copy,
                "from": "D:\\_IMAGES\\",
                "to": "D:\\_UPLOAD\\",
                "files": ["icon512.png",],},
               
               {"action": shutil.copy,
                "from": PLAYERS_PATH + "\\" + player + "\\" + color + "\\", 
                "to": WWW_PATH + "\\images\\",
                "files": ["ff.png",
                          "rew.png",
                          "play.png",
                          "pause.png",
                          "player_body.png",],},
...

Проблема в том, что здесь есть переменные которые вводятся при работе скрипта, поэтому не знаю как лучше вынести это в отдельный файл.



Отредактировано avo9 (Май 30, 2013 16:30:02)

Офлайн

#2 Май 30, 2013 19:07:34

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как лучше создать файл настроек?

avo9
скрипт немного автоматизирующий сборку проекта
Т.е. скрипт используемой внешней системой сборки проекта.
Я посоветую использовать более продвинутые системы сборки, там проблем с путями нет. (SCons CMake bjam)

avo9
занимают очень много места
В отдельном файле они тоже будут занимать много места.
avo9
возможность их изменять
Пользователь и в скрипте отлично их заменит. вырезаете кусок с путями в отдельный файл и импортируете его в свой сценарий - вот вам и отдельный файл.

Цель файлов конфигурации (например см. модули ConfigParser, json) -
1 предотвратить возможность выполнения изменяемых пользователем команд которые могут оказаться потенциально опасны.
2 ConfigParser позволяет сократить количество изменяемого текста за счет использования макроподстановок. В некоторых ситуациях ini файлы короче (не надо писать кавычки при определении строк)
3 Формат файлов не зависит от языка и в одном файле могут быть настройки для инструментария написанного на разных языках.



Отредактировано doza_and (Май 30, 2013 19:10:45)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version