Генерация файла конфигурации в Python
Я ищу способ сгенерировать некоторые файлы конфигурации для игры stellaris в python .
Моя цель — написать файл Python для каждого сгенерированного файла конфигурации Stellaris, загрузить файл Python, выполнить в нем скрипт и поместить вывод в тот же каталог в зависимости от имени файла Python.
Так что для файла "common/ship_sizes/00_ship_sizes.txt" я бы просто создал файл "common/ship_sizes/00_ship_sizes.txt.py", тогда система найдет этот файл, откроет его, запустит в нем скрипт ( опционально с некоторой преамбулой, например, "позвонить
gen_output
", или нет, мне все равно), и поместите вывод кода Python в "common/ship_sizes/00_ship_sizes.txt".
Цель состоит в том, чтобы иметь возможность кодировать генерацию файлов конфигурации, а не писать их самостоятельно.
Я определенно могу сделать это вручную, пройдясь по дереву каталогов, открыв файлы Python, запустив скрипт, перенаправив вывод на основе имени файла и т. д. Я надеюсь, что для этого есть более питонический способ.
Пример того, что я хочу создать:
ship_section_template = {
key = "BATTLESHIP2_BOW_L1M1S2"
ship_size = battleship2
fits_on_slot = bow
should_draw_components = yes
entity = "battleship_bow_L1M1S2_entity"
icon = "GFX_ship_part_core_bow"
icon_frame = 1
component_slot = {
name = "LARGE_GUN_01"
template = "large_turret2"
locatorname = "large_gun_01"
}
component_slot = {
name = "MEDIUM_GUN_01"
template = "medium_turret2"
locatorname = "medium_gun_01"
}
component_slot = {
name = "SMALL_GUN_01"
template = "small_turret2"
locatorname = "small_gun_01"
}
component_slot = {
name = "SMALL_GUN_02"
template = "small_turret2"
locatorname = "small_gun_02"
}
large_utility_slots = 3
resources = {
category = ship_sections
cost = {
alloys = @section_cost
}
}
}
как видите, это действительно скучный шаблон; во многих случаях простые модификации требуют обширной перезаписи многих файлов, а файл конфигурации не позволяет вам выполнять математические операции в большинстве файлов, а это означает, что мне приходится генерировать константы со всей моей математикой, предварительно рассчитанной, что делает настройку реальной болью .
Но, честно говоря, фактический формат каждого из них не имеет большого значения, я могу легко написать код из словаря в этот. Моя проблема заключается в чистой «системе» для создания многих из этих файлов.
Есть ли способ использовать систему пакетов python для этого? Т.е. автоматически загружать все пакеты в наборе подкаталогов без повторного их перечисления или что-то подобное? Я имею в виду, я не хочу переписывать make.
1 ответ
Пожалуйста, обратитесь к модулю парсера конфигурации из документации python.
- https://docs.python.org/3/library/configparser.html
- https://docs.python.org/3/distutils/setupscript.html#
Вы можете указать другие форматы файлов в разделе «Форматы файлов» по ссылке. https://docs.python.org/3/library/index.html
Другие темы, касающиеся конфигурации: