2010-06-03 153 views
2

我可能有串狀,什麼是解析和替換字符串的最佳方式?

"""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$的最佳解決方案 - 目前我已經把爲蟒蛇字符串格式 - 僅用於測試。

+1

我會推薦一個模板引擎,而不是像以前的問題中討論的那樣手動滾動您自己的代碼:http://stackoverflow.com/questions/2839513/how-to-include-a-dynamic-page-contents -into-a-template – 2010-06-03 12:07:21

回答

0

如果你打算做複雜的模板,你可以考慮使用像Jinja這樣的高級模板引擎。還有很多其他的。

2

Python在Python 2.6和3.0中的字符串上實現了一個新的.format()方法。看看這個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

如果您正在尋找簡單的東西,請嘗試查看Python's builtin Template.我使用它可以快速輕鬆地進行模板化,而無需安裝額外的軟件包。

還有新的format()方法。

+0

最受歡迎的模板引擎問題現在已被刪除:( – 2012-09-14 14:11:19

+0

感謝Ben的提升,我刪除了鏈接。 – chauncey 2012-09-14 19:05:42

相關問題