Python编写简单的HTML页面合并脚本


Posted in Python onJuly 11, 2016

最近写一个BootStrap页面...因为功能需要所以决定一个页面解决所有问题,然后用jQuery来动态显示功能....然而这样做的话页面会相当庞大,一堆隐藏模态窗口和功能div都堆在一起看起来挺难受的 

然后想了下就用Python写了个小脚本用来支持<include>标签,用处是合并外部html文件,来强行分文件编写单个庞大的HTML页面 

用了下感觉挺好用的,分享给大家 

使用方法: 

HTML中使用<include src="">标签来导入其他HTML代码。支持嵌套替换(如A页面嵌套B页面,B页面嵌套C页面)。但是请小心循环嵌套(A页面嵌套B页面,B页面嵌套A页面),会导致死循环
主页面为默认处理页面为index.html,生成合并页面为newhtml.html
具体代码如下 

import codecs
import webbrowser
import sys

charset = "utf-8" #文件编码

#读取text里的<include>标签及src属性中的文件,替换原标签
def replaceInclude (filename,text):
 try:
  posA = text.find("<include")
  while posA!= -1:
   posC = text.find(">",posA)
   tag = text[posA:posC+1]
   posA = text.find("src=",posA)
   posA += 5
   posB = text.find("\"",posA)
   file = text[posA:posB]#获取src中的文件名
   print ("正在处理:",file)
   tmpFile = codecs.open(file,"r",charset)
   tmpText = tmpFile.read()
   tmpText = replaceInclude(file,tmpText)#递归处理文件嵌套后的include标签
   text = text.replace(tag,tmpText)
   tmpFile.close()
   posA = text.find("<include")
  return text;
 except Exception as e:
  print ("错误:文件",filename,"中的",file,"处理失败!错误信息:\n",e)
  sys.exit(1)
   

readFile = codecs.open("index.html","r",charset)
writeFile = codecs.open("newhtml.html","w",charset)
try:
 text = readFile.read()
 text = replaceInclude("index.html",text)
 writeFile.write(text)
 webbrowser.open("newhtml.html")
finally:
 readFile.close()
 writeFile.close()</pre>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中用于计算对数的log()方法
May 15 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
解决Python plt.savefig 保存图片时一片空白的问题
Jan 10 Python
opencv3/C++ 平面对象识别&amp;透视变换方式
Dec 11 Python
Python timer定时器两种常用方法解析
Jan 20 Python
Python cookie的保存与读取、SSL讲解
Feb 17 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 Python
如何使用Python处理HDF格式数据及可视化问题
Jun 24 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 Python
Django web自定义通用权限控制实现方法
Nov 24 Python
python cv2图像质量压缩的算法示例
Jun 04 Python
Python中super()函数简介及用法分享
Jul 11 #Python
Swift中的协议(protocol)学习教程
Jul 08 #Python
Python中多线程的创建及基本调用方法
Jul 08 #Python
使用PyInstaller将Python程序文件转换为可执行程序文件
Jul 08 #Python
Python遍历目录中的所有文件的方法
Jul 08 #Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
Jul 08 #Python
使用Python读写及压缩和解压缩文件的示例
Jul 08 #Python
You might like
再说下636单管机
2021/03/02 无线电
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
twig里使用js变量的方法
2016/02/05 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
javascript iframe编程相关代码
2009/12/28 Javascript
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
js date 格式化
2017/02/15 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
谈谈React中的Render Props模式
2018/12/06 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
JavaScript工具库MyTools详解
2020/01/01 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
[54:08]LGD女子刀塔学院 DOTA2炼金术士教学
2014/01/09 DOTA
Python常用小技巧总结
2015/06/01 Python
简单谈谈Python中的反转字符串问题
2016/10/24 Python
Python中几种导入模块的方式总结
2017/04/27 Python
Python实现微信好友的数据分析
2019/12/16 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
2020/10/10 Python
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
梅西百货官网:Macy’s
2020/08/04 全球购物
linux面试题参考答案(4)
2013/01/28 面试题
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
介绍一下EJB的体系结构
2012/08/01 面试题
司机辞职报告范文
2014/01/20 职场文书
周年庆典主持词
2014/04/02 职场文书
小学德育工作经验交流材料
2014/05/22 职场文书
护林防火标语
2014/06/27 职场文书
转让协议书范本
2014/09/13 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书