Найти - Пользователи
Полная версия: Как лучше создать файл настроек?
Начало » Python для новичков » Как лучше создать файл настроек?
1
avo9
У меня есть скрипт немного автоматизирующий сборку проекта: переименование и перемещение файлов, изменения в коде, и тд. И есть фрагменты коде которые было бы хорошо вынести в отдельный файл, поскольку во-первых занимают очень много места, а во-вторых нужно дать возможность конечному пользователю возможность их изменять. Вот примеры кода:
...
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",],},
...

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

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

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