Символ «%» вызывает ошибку при подстановке строк с помощью locals () - PullRequest
1 голос
/ 19 января 2011

Я пытаюсь заменить строки переменными, используя locals () в python, но я могу найти способ использовать символ % внутри строки без ошибок. Вот конкретный пример:

color = colors_generator() #the function return a color

html = """<html><head>
<style>#square{color:%(color)s;width:100%;height:100%;}</style>    
</head>    <body>  <div id="square">  </div>
</body></html>""" % locals()

print "Content-Type: text/html\n"    
print html

Результат: TypeError: not enough arguments for format string

Проблема в том, что % в 100% . Как я могу избежать этого?

Ответы [ 2 ]

4 голосов
/ 19 января 2011

escape% с%

html = """<html><head>
<style>#square{color:%(color)s;width:100%%;height:100%%;}</style>    
</head>    <body>  <div id="square">  </div>
</body></html>""" % locals()
1 голос
/ 19 января 2011

Virhilo уже ответил на ваш прямой вопрос, но если вы обнаружите, что создаете довольно большие / сложные шаблоны, возможно, вместо этого стоит взглянуть на полноценный шаблонизатор:

...