python高效合并大量文件_合并大量XML文件

import os, os.path, sys

import glob

from xml.etree import ElementTree

def run(files):

xml_files = glob.glob(files +"/*.xml")

xml_element_tree = None

for xml_file in xml_files:

print xml_file

data = ElementTree.parse(xml_file).getroot()

# print ElementTree.tostring(data)

for result in data.iter('TALLYMESSAGE'):

if xml_element_tree is None:

xml_element_tree = data

insertion_point = xml_element_tree.findall("./BODY/DATA/TALLYMESSAGE")[0]

else:

insertion_point.extend(result)

if xml_element_tree is not None:

f = open("myxmlfile.xml", "wb")

f.write(ElementTree.tostring(xml_element_tree))

run("F:/data/data")

但问题是我有很多XML文件,精确地说是365个,每个文件至少有2MB。合并它们导致我的电脑崩溃。

这是我的xml文件的xml树的图像:

我的新更新代码是:

^{pr2}$

当run创建以下错误时也是如此:Traceback (most recent call last):

File "F:\data\xmlmergexsl.py", line 38, in

XSLFILE("F:\data\data")

File "F:\data\xmlmergexsl.py", line 36, in XSLFILE

xmlfile.write(tree_out)

TypeError: must be string or buffer, not None

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值