通过python将xml文件转换成html文件
#数据类型的转换
def main():
maxwidth = 100 #用于规范字段的长度
print_start()
count=0
while True:
try:
line =input()
if count == 0:
color = 'lightgreen'
elif count % 2: #取余
color = 'white'
else:
color = 'lightyellow'
print_line(line,color,maxwidth)
count += 1
except EOFError:
break
print_end()
maxwidth 用于规范字段的长度,一旦比这个长度长的字段,我们可以通过用省略号来替代后面的内容
count 用于对文件中的颜色的改变,斑马纹的实现。
上面的代码中的print_start(),print_line(),print_end()三个函数是我们自己的设定的函数,代码在后面
print_start() 函数用于输入开头
print_end() 函数用于输入结尾
print_line() 将该行以html的形式输出
def print_start():
print("<table border='1'>")
#用于文件的开始头拼接
def print_end():
print("</table>")
#用于文件的结尾拼接
上面两个是用来减少函数之间的关联性,虽然在函数中添加print(…)也可以,
但是这样可以更加规范,以后修改也比较容易,对之后的运维提供极大的方便,
通过修改函数,可以将所有的头尾一起修改。
def print_line(line,color,maxwidth):
print("<tr bgcolor='{0}'>".format(color))
fields = extrace_fields(line)
for field in fields:
if not field:
print("<td></td>")
else:
number = field.replace(",","")
#这里把”,“改成”“的意义是为了将数值1,000转换为1000的格式
try:
x = float(number)
print("<td align='right'>{0}</td>33".format(round(x)))
except ValueError:
field =field.title()
'''
用于注释
title函数是用来将字符串的首字母大写处理
str = "this is string example from runoob....wow!!!"
请注意,非字母后的第一个字母将转换为大写字母:
txt = "hello b2b2b2 and 3g3g3g"
print(txt.title()) #Hello B2B2B2 And 3G3G3G
'''
field = field.replace('And','and')
if len(field) <= maxwidth:
field = escape_html(field)
else:
field = "{0}...".format(
escape_html(field[:maxwidth]))
print("<td>{0}</td>".format(field))
print("</tr>")
这段程序是将通过for遍历文件,提取出里面的值,将里面的值进行规范化 然后通过需要的html格式通过format拼接,最后显示出来。
通过try的异常捕捉,我们可以将文件中的数字与字符串分开处理,数字通过flaot进行小数格式化,字符串通过title格式化
这又体现了python语言通过try捕获异常的灵活性
为什么不再读取的时候直接通过replace进行分割字符串?
因为这是为了防止出现,分号中间有”,“ 使文件不正确分割,导致程序出现错误,所以,我们要在print_line中在进行分割,减少错误的产生
extrace_fields(line)是自定义函数,函数的作用是将字段串进行分割
def extrace_fields(line):
fields =[]
field = ''
quote = None
for c in line:
if c in "\"":
if quote is None: #start of quoted string
quote = c
elif quote == c: #end of quoted string
quote = None
else:
field += c #other quote inside quoted string
continue
if quote is None and c == ",": #end of a field
fields.append(field)
field =''
else:
field += c #accumulating a field
if field:
fields.append(field)#adding the last field
return fields
def escape_html(text):
text = text.replace('&','&')
text = text.replace('<',"<")
text = text.replace(">",">")
return text
通过替换函数将'<','>'替换成html可识别的实体字符,不替换的话 html会将'<','>'大于小于符号识别为尖括号<>
通过python将xml文件转换成html文件的更多相关文章
- 自制 Python小工具 将markdown文件转换成Html文件
今天看到了一个Python库,名为markdown.瞬间就给了我一个灵感,那就是制作一个将markdown文件转换成html文件的小工具. 我的实验环境 操作系统: Windows 7 64位 旗舰版 ...
- <p><span style="font-size:14px">近期须要批量将PNM格式的文件转换成GIF文件。我尝试了例如以下的图像转换工具:</span></p>
近期须要批量将PNM格式的文件转换成GIF文件.我尝试了例如以下的图像转换工具: ImageBatch:全然免费,但只支持PNG JPEG BMP GIF四种格式 OfficeConverter:在线 ...
- Protocol Buffer使用转换工具将proto文件转换成Java文件流程及使用
Client与Server的网络通信协议传输使用google protobuf,服务器端使用的是Java 一. Protocol Buffersprotobuf全称Google Protocol Bu ...
- [转载]webarchive文件转换成htm文件
原文地址:webarchive文件转换成htm文件作者:xhbaxf Mac OS X系统带有文件转换功能,可以把webarchive文件变成html文件.方法是: Step 1: 建立一个文件夹 ...
- linux下的什么工具能将DVI文件转换成PostScript文件?
答: dvips,此工具能将由Latex或Tex生成的DVI文件转换成PostScript文件,官网在此
- xls/csv文件转换成dbf文件
转至:https://blog.csdn.net/linhai1028/article/details/80211252 编写的一个小脚本,主要是利用python中的pandas,xlrd,dbfpy ...
- 15个最好的PDF转word的在线转换器,将PDF文件转换成doc文件
PDF是一种文件格式,包含文本,图像,数据等,这是独立于操作系统的文件类型.它是一个开放的标准,压缩,另一方面DOC文件和矢量图形是由微软文字处理文件.该文件格式将纯文本格式转换为格式化文档.它支持几 ...
- chm文件转换成html文件,解决chm文件无法使用浏览器打开的问题
每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code CHM是英语“Compiled Help Manual”的简写,即“已编译的帮助文件”.CHM ...
- C# 将PowerPoint文件转换成PDF文件
PowerPoint的优势在于对演示文档的操作上,而用PPT查看资料,反而会很麻烦.这时候,把PPT转换成PDF格式保存,再浏览,不失为一个好办法.在日常编程中和开发软件时,我们也有这样的需要.本文旨 ...
- 如何将hdf5文件转换成tflite文件
我们用keras训练模型后,通常保存的模型格式类型为hdf5格式,也就是.h5文件. 但如果我们想要移植到移动端,特别是基于tensorflow支持的移动端,那就需要转换成tflite格式. 如何转换 ...
随机推荐
- 【洛谷】【动态规划(多维)】P1006 传纸条
[题目描述:] 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸 ...
- chrome的uget扩展程序红色 Unable to connect with uget-integrator问题
我们根据网上的教程在ubuntu16.04中安装下载工具uget+aria2并配置chrome时,最后重新打开chrome浏览器,发现uget扩展程序是红色的,点开看到”Unable to conne ...
- SEGGER RTT STOP/SLEEP 模式下使用
1.问题详述, M3/M4内核在sleep 或者 STOP模式 下,内核是不工作的,因此需要 以下 几步操作 第一步: 开启 低功耗模式下,debug 的连接 DBGMCU_Config(DBGMCU ...
- linux文件系统初始化过程(2)---挂载rootfs文件系统
一.目的 本文主要讲述linux3.10文件系统初始化过程的第一阶段:挂载rootfs文件系统. rootfs是基于内存的文件系统,所有操作都在内存中完成:也没有实际的存储设备,所以不需要设备驱动程序 ...
- RAC配置笔记
Iscsi常用命令(我通过openfiler实现iscsi存储) # iscsiadm -m discovery -t st -p IP:port //发现iSCSI存储 # iscsiadm ...
- TCP\UDP客户—服务器程序设计基本框架流程图
- mysql8.0版本skip-grant-tables出现的新问题
MySQL 初始化 mysqld --initialize 的时候会有密码,就这个样子, 可是毕竟总有人跟我一样,不熟悉安装过程,没有注意这一密码这一项,导致你现在不知道密码的尴尬处境,或者说你是正常 ...
- canvas绘制折线图(仿echarts)
遇到的问题:Retina屏上字体线条模糊问题 解决方案:放大canvas的大小,然后用css压缩回原大小,例如:想要900*400的画布,先将画布设置为 width="1800px" ...
- GATK --- wdl 语言
GATK的pipeline使用WDL进行编写 WDL是一种流程管理语言,内置的支持并行,适合编写pipeline 运行wdl脚本需要两步:第一步编辑参数列表对应的json文件,第二步直接运行Cromw ...
- 20155327 java第四周学习笔记
20155327 java第四周学习笔记 五六章知识整理 1子类与父类 父类是接口或者是抽象类,子类必须继承自父类. 2子类的继承性 在Java中,通过关键字extends继承一个已有的类,被继承的类 ...