我想处理一个非常大的XML文件>;3 GB),但问题是xml文件不完整,如下所示:
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<neighbor name="Austria" direction="E"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank>68</rank>
我想要的结果是:
<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<neighbor name="Austria" direction="E"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<neighbor name="Malaysia" direction="N"/>
</country>
</data>
因此,我必须将标题部分(如下所示)添加到XML文件中:
<?xml version="1.0"?>
<data>
然后,删除xml文件的不完整部分(如下所示):
<country name="Panama">
<rank>68</rank>
最后,将队列部分(如下所示)添加到XML文件中:
</data>
所有这些过程都必须由Python脚本完成
谢谢你的帮助
将连续的行读入缓冲区,在完成另一个
<country>...</country>
条目后打印并清空缓冲区为了避免在条目之间打印虚假的换行符,我使用
end=''
。如果需要python2解决方案,the fix is different for Python2就我个人而言,我会用Awk写这篇文章,这在处理此类任务时非常有效
三元表达式
(b ? ORS : "")
仅在b
不为空时添加换行符(输出记录分隔符),即避免在第一个成员之前添加换行符相关问题 更多 >
编程相关推荐