文档章节

通过python将xml文件转换成html文件

SEOwhywhy
 SEOwhywhy
发布于 2018/11/23 18:16
字数 821
阅读 3
收藏 0

  #数据类型的转换
  
  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(www.michenggw.com))    #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}www.yigouyule2.cn </td>"www.mhylpt.com.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 www.dfgjyl.cn== ",": #end of a field
  
  fields.append(field)
  
  field =''
  
  else:
  
  field += c  #accumulating www.gcyl152.com a field
  
  if field:
  
  fields.append(field)#adding www.gcyl152.com 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会将'<','>'大于小于符号识别为尖括号<>

© 著作权归作者所有

SEOwhywhy
粉丝 8
博文 155
码字总数 342404
作品 0
私信 提问
python数据存储--JSON

HTML正文存储为两种格式:JSON和CSV。 存储为JSON: 首先利用Requests访问http://seputu.com获取HTML文档: 取每章节 接下来将数据存储为JSON。 python对JSON文件的操作分为编码和解码,通过...

guguobao
2018/08/21
0
0
python开源工具列表【持续更新】

以下是个人在工作中整理的一些python wheel,供参考。 这个列表包含与网页抓取和数据处理的Python库 网络 通用urllib -网络库(stdlib)。 requests -网络库。 grab – 网络库(基于pycurl)。...

武耀文
2018/04/25
0
0
手把手教你如何用Python从PDF文件中导出数据(附链接)

作者:Mike Driscoll ;翻译:季洋;校对:丁楠雅 本文约4000字,建议阅读10分钟。 本文介绍了在提取出想要的数据之后,如何将数据导出成其他格式的方法。 有很多时候你会想用Python从PDF中提...

数据分析v
2018/11/29
0
0
Python 爬虫的工具列表 附Github代码下载链接

这个列表包含与网页抓取和数据处理的Python库 1、网络 通用 urllib -网络库(stdlib)。 requests -网络库。 grab – 网络库(基于pycurl)。 pycurl – 网络库(绑定libcurl)。 urllib3 – ...

大数据之路
2012/07/07
2.7K
0
数据提取之JSON与JsonPATH

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的...

张元江_erel
2018/11/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

可见性有序性,Happens-before来搞定

写在前面 上一篇文章并发 Bug 之源有三,请睁大眼睛看清它们 谈到了可见性/原子性/有序性三个问题,这些问题通常违背我们的直觉和思考模式,也就导致了很多并发 Bug 为了解决 CPU,内存,IO ...

tan日拱一兵
31分钟前
3
0
网络七层模型与TCP/UDP

为了使全球范围内不同的计算机厂家能够相互之间能够比较协调的进行通信,这个时候就有必要建立一种全球范围内的通用协议,以规范各个厂家之间的通信接口,这就是网络七层模型的由来。本文首先...

爱宝贝丶
34分钟前
4
0
Jenkins World 贡献者峰会及专家答疑展位

本文首发于:Jenkins 中文社区 原文链接 作者:Marky Jackson 译者:shunw Jenkins World 贡献者峰会及专家答疑展位 本文为 Jenkins World 贡献者峰会活动期间的记录 Jenkins 15周岁啦!Jen...

Jenkins中文社区
52分钟前
8
0
杂谈:面向微服务的体系结构评审中需要问的三个问题

面向微服务的体系结构如今风靡全球。这是因为更快的部署节奏和更低的成本是面向微服务的体系结构的基本承诺。 然而,对于大多数试水的公司来说,开发活动更多的是将现有的单块应用程序转换为...

liululee
今天
8
0
OSChina 周二乱弹 —— 我等饭呢,你是不是来错食堂了?

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @ 自行车丢了:给主编推荐首歌 《クリスマスの夜》- 岡村孝子 手机党少年们想听歌,请使劲儿戳(这里) @烽火燎原 :国庆快来,我需要长假! ...

小小编辑
今天
915
12

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部