欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

python创建模板文件及使用教程示例

时间:2022-04-25 10:48:45|栏目:Python代码|点击:

写作思路

1、模板的定义
2、如何利用模板生成多个文件

在很多情况下,我们会创建出很多样式相似甚至是相同的类文件,比如在Android文件创建的时候(由于Android Studio已经被我删除很久了,就没法实体展示)、Visual Studio创建继承自虚方法的时候,创建出来的文件都已经自带了一些基础格式和基础方法
基于上述需求,有了利用模板类创建文件的功能

1、模板的定义

"""
    create in ${now}
    @author ${author}
"""
import sys
class ${ClassName}Class(object):
    def __init(self):
        pass
    def ${ClassName}GetData(self):
        pass
    def ${ClassName}SetData(self):
        pass
    def ${ClassName}Print(self, msg):
        print("${ClassName}", " print:", msg)
"""
    you can modify template from BaseClassTemplate.tpl
"""

看到上面那些 ${now}、 ${author}、 ${ClassName} 了吗!这些就是我们在模板中要替代的对象!

2、如何利用模板生成多个文件

import datetime
from string import Template
tplFilePath = r'F:\PythonXSLWorkSpace\TemplateGeneratePython\PythonTemplate\BaseClassTemplate.tpl'
path = r'F:\PythonXSLWorkSpace\TemplateGeneratePython\GenerateFloder\\'
ClassNameList = ["Game", "Music", "Live"]
for className in ClassNameList:
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    filename = className + 'Class.py'
    author = '在逆境中蜕变'
    tplFile = open(tplFilePath)
    gFile = open(path + filename, "w")
    lines = []
    tpl = Template(tplFile.read())
    lines.append(tpl.substitute(
        author=author,
        now=now,
        ClassName=className))
    gFile.writelines(lines)
    tplFile.close()
    gFile.close()
    print('%s文件创建完成' % filename)

原理简述:实际上就是一种字符串匹配以及字符串替代,你甚至可以自己写一个匹配方式,然后用str.replace('${author}',author)来替换模板中的内容!

运行结果

一开始文件的状态如下

在这里插入图片描述

运行后的结果如下

在这里插入图片描述

然后再让我们看看里面的生成结果吧~

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

是不是很棒~当然了,你可以根据模板根据需求定义更复杂的东西

上一篇:利用PyQt5生成过年春联

栏    目:Python代码

下一篇:Python文件操作的方法

本文标题:python创建模板文件及使用教程示例

本文地址:http://www.codeinn.net/misctech/200157.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有