Я не нашел связанных вопросов или примеров кода Python, использующего f-строки для генерации кода Python. Есть ли основная проблема, о которой я должен знать? f-струны действительно удобны и кажутся достаточно эффективными для моих нужд.
Я генерирую некоторые скрипты на python, которые можно использовать в командной строке для автоматической обработки папок с изображениями дистанционного зондирования. Я собирался вручную написать некоторые файлы, но понял, что автоматизировать процесс было относительно легко путем экстернализации метаданных, касающихся выражений.
Логика программы:
- Извлечение выражений, содержащих информацию о различных типах расчетов, которые могут быть выполнены на изображениях (любой вид индекса дистанционного зондирования)
- Итерация по выражениям
- Создать файл с именем выражения (и другими стандартами)
- Вставить информацию о выражениях в f-строки
- Запись f-строки для создания файла
Я также автоматически сгенерирую некоторые тесты после выбора метода, который будет использоваться. Есть ли предел, из которого f-строки не будут эффективно обрабатывать код?
Некоторые люди обсуждали использование таких шаблонов Python, как Jinja2. Однако, если f-строк достаточно, я не хочу интегрировать другую внешнюю зависимость.
from expressions_meta import expressions
for key in expressions.keys():
file_name = '_'.join([key, 'dir', 'cl.py'])
with open(file_name, 'w') as f:
f.write(f"""
import sys
import getopt
from gdal_dir_calc import GDALDirCalc
expression = {expressions[key]}
band_meta = {{}}
[...]
gdal_dir_obj.main()
""")
Возможно, я слишком осторожен, но думаю, что эта тема может касаться и других приложений.
Любые другие советы, касающиеся использования f-строк для генерации кода Python или другого инструмента?