Каков наилучший способ разобрать и заменить строку с ее значениями? - PullRequest
2 голосов
/ 03 июня 2010

У меня может быть строка как,

"""Hello, %(name)s,
how are you today, 
here is amount needed: %(partner_id.account_id.debit_amount)d
"""

что было бы лучшим решением для такого шаблона, может мне понадобится объединить регулярное выражение и eval, строка ввода может отличаться как $partner_id.account_id.debit_amount$ - на данный момент я сохранил формат строки python - только для тестирования.

Ответы [ 3 ]

2 голосов
/ 03 июня 2010

Python реализовал новый метод .format () для строк в Python 2.6 и 3.0. Проверьте это PEP: http://www.python.org/dev/peps/pep-3101/

Он более мощный и гибкий, чем оператор% и встроен в python:

Вот несколько примеров из PEP:

"My name is {0}".format('Fred')
"My name is {0.name}".format(open('out.txt', 'w'))
"My name is {0[name]}".format({'name':'Fred'})

Этого может быть достаточно для ваших нужд, если нет, посмотрите на движок шаблонов, такой как Jinja, как упоминали другие.

1 голос
/ 03 июня 2010

Если вы ищете что-то простое, попробуйте взглянуть на Встроенный шаблон Python. Я использую его совсем немного для быстрого и простого создания шаблонов без дополнительных затрат на установку дополнительных пакетов.

Существует также новый метод format () .

0 голосов
/ 03 июня 2010

Если вы собираетесь делать сложные шаблоны, вы можете рассмотреть возможность использования продвинутого движка шаблонов, такого как Jinja . Есть и много других.

...