Python - 定制语法的string模板(template) 详解

定制语法的string模板(template) 详解

本文地址: http://blog.csdn.net/caroline_wendy/article/details/28614491

string模板(template)参考: http://blog.csdn.net/caroline_wendy/article/details/27054263

string.Template()内添加替换的字符, 使用"$"符号, 或 在字符串内, 使用"${}"; 调用时使用string.substitute(dict)函数.

可以通过继承"string.Template", 覆盖变量delimiter(定界符)和idpattern(替换格式), 定制不同形式的模板.

代码:

# -*- coding: utf-8 -*-

‘‘‘
Created on 2014.6.5

@author: Administrator

@edition : python 3.3.0, eclipse pydev
‘‘‘

import string

template_text = ‘‘‘
    Delimiter : %%
    Replaced : %with_underscore
    Ingored : %notunderscored
‘‘‘

d = {‘with_underscore‘ : ‘replaced‘,
     ‘notunderscored‘ : ‘not replaced‘}

class MyTemplate(string.Template):
    delimiter = ‘%‘
    idpattern = ‘[a-z]+_[a-z]+‘

t = MyTemplate(template_text)
print(‘Modified ID pattern: ‘)
print(t.safe_substitute(d))

输出:

Modified ID pattern: 

    Delimiter : %
    Replaced : replaced
    Ingored : %notunderscored

注意: 定界符(delimiter)为"%", 替换模式(idpattern)必须包含下划线, 所以第2个没有进行替换.

Python - 定制语法的string模板(template) 详解

时间: 2024-10-13 17:02:39

Python - 定制语法的string模板(template) 详解的相关文章

Python - 定制pattern的string模板(template) 详解

定制pattern的string模板(template) 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/28625179 string.Template的pattern是一个正则表达式, 可以通过覆盖pattern属性, 定义新的正则表达式. 如: 使用新的定界符"{{", 把{{var}}作为变量语法. 代码: # -*- coding: utf-8 -*- ''' Created on 2014.6.5 @

Python - 定制pattern的string模板(template) 具体解释

定制pattern的string模板(template) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/28625179 string.Template的pattern是一个正則表達式, 能够通过覆盖pattern属性, 定义新的正則表達式. 如: 使用新的定界符"{{", 把{{var}}作为变量语法. 代码: # -*- coding: utf-8 -*- ''' Created on 2014.6.5

Rsyslog的模板template详解

一. Template功能 根据用户需求指定任意格式 动态生成文件名 每个输出都使用了一些模板,包括针对文件的,针对用户消息等 备注: 旧版本:$template 新版本:template() V6之前是旧格式 V7版本,传统语法与最新配置可在配置文件中混合使用,我们下面学习的是新格式. 二.Template()声明 1.作用 用来定义模板,是一种静态声明,表示所有的模板都会在rsyslog读取配置文件的时候被定义.template不会受到if语句或嵌入配置的影响. 2.基本声明结构 templ

Django模板系统详解

你可能已经注意到我们在例子视图中返回文本的方式有点特别.也就是说,HTML被硬性地直接写入 Python代码之中. 这种处理会导致一些问题: § 对页面设计的进行任何改变都必须对 Python代码进行相应的修改.站点设计的修改往往比底层Python代码的修改要频繁得多,因此如果可以在不进行 Python代码修改的情况下变更设计,那将会方便得多. § Python代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给不同的人员(甚至不同部门)来完成.设计人员和 HTML

c++中string类的详解

通过在网站上的资料搜集,得到了很多关于string类用法的文档,通过对这些资料的整理和加入一些自己的代码,就得出了一份比较完整的关于string类函数有哪些和怎样用的文档了!下面先罗列出string类的函数有哪一些,然后再罗列出函数的原型,最后到代码的实现 标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用.现将具体用法的一部分罗列如下,只起一个抛砖引玉的作用吧,好了,废话少说,直接进入正题吧!要想使用标准C++中string类,必须要包含#include <s

Python学习之os模块的使用详解

本文和大家分享的主要是python 中os 模块相关使用方法详解,一起来看看吧,希望对大家 学习python 有所帮助. os模块调用操作系统接口的模块 相关方法或属性: getcwd() ---  获取当前的操作目录,等同于 linux 中的 pwd 命令. 调用:os.getcwd() chdir() ---  改变 python 脚本的工作目录. 调用:os.chdir(path) (path 以字符串形式传入 ) 例如: >>> os.getcwd() 'C:\\Users\\B

Mysql Join语法解析与性能分析详解

一.Join语法概述 join 用于多表中字段之间的联系,语法如下: ... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditiona table1:左表:table2:右表. JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录. LEFT JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录. RIGHT JOIN(右连接):与 LEF

七牛云存储Python SDK使用教程 - 上传策略详解

文 七牛云存储Python SDK使用教程 - 上传策略详解 七牛云存储 python-sdk 七牛云存储教程 jemygraw 2015年01月04日发布 推荐 1 推荐 收藏 2 收藏,2.7k 浏览 本教程旨在介绍如何使用七牛的Python SDK来快速地进行文件上传,下载,处理,管理等工作. 前言 我们在上面的两节中了解到,客户端上传文件时,需要从业务服务器申请一个上传凭证(Upload Token),而这个上传凭证是业务服务器根据上传策略(PutPolicy)来生成的,而这个生成过程中

Python调用中科院NLPIR(ICTCLAS2015)详解 刘超([email&#160;protected])

Python调用中科院NLPIR(ICTCLAS2015)详解 南京理工大学 计算机科学与工程学院 RuiXia_NUSTM课题组 ChaoLiu([email protected]) ------------------------- 主要讲解内容: 1. NLPIR版本及下载 2. 代码问题 3. userdict的使用问题 ------------------------- 友情提示:如果是swig问题,自己处理.首先下载swig,swig可以帮助我们将C或者C++编写的DLL或者SO文件