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中的__future__模块
Apr 27 Python
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
Nov 19 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
Nov 23 Python
python处理数据,存进hive表的方法
Jul 04 Python
python批量从es取数据的方法(文档数超过10000)
Dec 27 Python
python ChainMap的使用和说明详解
Jun 11 Python
django多对多表的创建,级联删除及手动创建第三张表
Jul 25 Python
Python操作qml对象过程详解
Sep 26 Python
通过 Django Pagination 实现简单分页功能
Nov 11 Python
详解pandas赋值失败问题解决
Nov 29 Python
总结Python连接CS2000的详细步骤
Jun 23 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
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
PHP的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
curl和libcurl的区别简介
2015/07/01 PHP
php简单统计在线人数的方法
2016/05/10 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
js中关于String对象的replace使用详解
2011/05/24 Javascript
关于event.cancelBubble和event.stopPropagation()的区别介绍
2011/12/11 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
图片加载完成再执行事件的实例
2017/11/16 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
为什么说JavaScript预解释是一种毫无节操的机制详析
2018/11/18 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
Vue中父子组件的值传递与方法传递
2020/09/28 Javascript
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
python的dict,set,list,tuple应用详解
2014/07/24 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
PHP经典面试题
2016/09/03 面试题
优秀团员事迹材料1000字
2014/08/20 职场文书
员工团队活动方案
2014/08/28 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
详解python网络进程
2021/06/15 Python
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby