#数据类型的转换
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('&','&amp;')
    text = text.replace('<',"&lt;")
    text = text.replace(">","&gt;")
    return text

通过替换函数将'<','>'替换成html可识别的实体字符,不替换的话 html会将'<','>'大于小于符号识别为尖括号<>


通过python将xml文件转换成html文件的更多相关文章

  1. 自制 Python小工具 将markdown文件转换成Html文件

    今天看到了一个Python库,名为markdown.瞬间就给了我一个灵感,那就是制作一个将markdown文件转换成html文件的小工具. 我的实验环境 操作系统: Windows 7 64位 旗舰版 ...

  2. <p><span style="font-size:14px">近期须要批量将PNM&#26684;式的文件转换成GIF文件。我尝试了例如以下的图像转换工具:</span></p>

    近期须要批量将PNM格式的文件转换成GIF文件.我尝试了例如以下的图像转换工具: ImageBatch:全然免费,但只支持PNG JPEG BMP GIF四种格式 OfficeConverter:在线 ...

  3. Protocol Buffer使用转换工具将proto文件转换成Java文件流程及使用

    Client与Server的网络通信协议传输使用google protobuf,服务器端使用的是Java 一. Protocol Buffersprotobuf全称Google Protocol Bu ...

  4. [转载]webarchive文件转换成htm文件

    原文地址:webarchive文件转换成htm文件作者:xhbaxf Mac OS X系统带有文件转换功能,可以把webarchive文件变成html文件.方法是:   Step 1: 建立一个文件夹 ...

  5. linux下的什么工具能将DVI文件转换成PostScript文件?

    答: dvips,此工具能将由Latex或Tex生成的DVI文件转换成PostScript文件,官网在此

  6. xls/csv文件转换成dbf文件

    转至:https://blog.csdn.net/linhai1028/article/details/80211252 编写的一个小脚本,主要是利用python中的pandas,xlrd,dbfpy ...

  7. 15个最好的PDF转word的在线转换器,将PDF文件转换成doc文件

    PDF是一种文件格式,包含文本,图像,数据等,这是独立于操作系统的文件类型.它是一个开放的标准,压缩,另一方面DOC文件和矢量图形是由微软文字处理文件.该文件格式将纯文本格式转换为格式化文档.它支持几 ...

  8. chm文件转换成html文件,解决chm文件无法使用浏览器打开的问题

    每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code CHM是英语“Compiled Help Manual”的简写,即“已编译的帮助文件”.CHM ...

  9. C# 将PowerPoint文件转换成PDF文件

    PowerPoint的优势在于对演示文档的操作上,而用PPT查看资料,反而会很麻烦.这时候,把PPT转换成PDF格式保存,再浏览,不失为一个好办法.在日常编程中和开发软件时,我们也有这样的需要.本文旨 ...

  10. 如何将hdf5文件转换成tflite文件

    我们用keras训练模型后,通常保存的模型格式类型为hdf5格式,也就是.h5文件. 但如果我们想要移植到移动端,特别是基于tensorflow支持的移动端,那就需要转换成tflite格式. 如何转换 ...

随机推荐

  1. 基于UML的毕业设计管理系统的分析与设计

    基于UML的毕业设计管理系统的分析与设计 <本段与标题无关,自行略过 最近各种忙,天气不错,导师心情不错:“我们要写一个关于UML的专著”,一句话:“一个完整的系统贯穿整个UML的知识”:我:“ ...

  2. AOP-切面是如何织入到目标对象中的

    切面是如何织入到目标对象中的???这大概是每个人在学习AOP的过程中都会产生的疑问吧. 当我们在调用目标方法时候,也就是通过代理对象调用目标方法的时候,比如:JdkDynamicAopProxy会通过 ...

  3. CentOs7.2编译安装Nginx服务器

    1. 安装nginx依赖 首先安装nginx的依赖 yum install gcc gcc-c++ openssl openssl-devel cyrus-sasl-md5 2,创建nginx用户 如 ...

  4. 【洛谷】【堆+贪心】P1484 种树

    [题目描述:] cyrcyr今天在种树,他在一条直线上挖了n个坑.这n个坑都可以种树,但为了保证每一棵树都有充足的养料,cyrcyr不会在相邻的两个坑中种树.而且由于cyrcyr的树种不够,他至多会种 ...

  5. 数字电路中应避免产生不必要的锁存器 Latch

    锁存器(Latch)是数字逻辑电路中很重要的一种基本电路,常见的锁存器包括三个端口:数据输入口.数据输出口.使能端.当使能端为高电平时,输入口的数据直接送到输出口,此时输入输出口可以看成是直接连通的: ...

  6. 递归计算一个目录的大小【os.wallk()】

    os.walk(): os.walk()可以得到一个三元tupple(dirpath, dirnames, filenames),其中第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的 ...

  7. Android攻城狮学习笔记-进阶篇一

    点击快速抵达: 第1章 AndroidManifest配置文件 第2章 使用ListView显示信息列表 第3章 使用DatePicker及TimePicker显示当前日期和时间 第4章 使用Grid ...

  8. Tensorflow-slim 学习笔记(二)第一层目录代码解读

    通过阅读代码来学习,一向时最直接快速的.本章将讲解slim的第一层目录tensorflow/tensorflow/contrib/slim/python/slim的代码. 本层代码主要包括learni ...

  9. 安装framework 4.6.2的时报错 “无法建立到信任根颁发机构的证书链”

    解决方案: 1.下载证书:MicrosoftRootCertificateAuthority2011.cer 2.开始→运行→MMC 3.文件→添加删除管理单元 (Ctrl+M) 4.证书→计算机账户 ...

  10. gattAttribute_t 含义 中文解释

    1.  gattAttribute_t   是一个结构体数据类型,里面存放了各种类型的数据. 现在 看看 TI  是怎么描述的,如下: /** * @brief GATT Attribute form ...