我有相当大的xml文件和相对较少的内存。在解析文件时,我目前正在将整个文件加载到内存中,如下面的代码片段所示,这会减慢整个计算机的运行速度,有时甚至无法工作。我想知道是否有一种方法一次只将一个项目装入内存?也许在处理当前文件时加载下一个文件时使用一些多处理,比如在深入学习中使用。
root = ET.parse("my_file.xml").getroot()
for child in root:
do_something()
我需要处理一个大约8 8Gb的大.XML文件。文件结构(简化)如下: <TopLevelElement>
<SomeElementList>
<Element>zzz</Element>
....and so on for thousands of rows
</SomeElementList>
<Records>
<RecordType1>
<RecordItem id="aaaa">
我正在尝试解析一个大的文本文件。文本文件实际上不是XML文件。如下所示的标签:
<tag1>
<tagsomedata> text1 </tagsomedata>
<text> text some pattern1 </text>
</tag1>
<tag1>
<tagsomedata> text2 </tagsomedata>
<text> text some pattern2 </text>
</tag1>
以此类推..
我需要以下形式的输出:
t
我正在寻找一种更有效的方法将文本数据加载到Python中,而不是使用.readlines(),然后手动解析数据。我的目标是在文本上运行不同的模型。
我的分类器是人的名字,列在他们的文字前.我们叫他们“评论”..。用***进行分离。下面是txt文件的一个示例:
Mike P,评论,2013年12月
Mike P,评论,2013年6月
Tom A,评论,2013年12月
Tom A,评论,2013年6月
马克·D,评论,2013年12月
马克·D,评论,2012年6月
莎莉·M,评论,2011年12月
***
这是迈克·P的第一篇评论
***
这是迈克·P的第二次评论
***
这是汤姆·A的第一
我正在使用python的优秀xml模块来处理我拥有的一些xml文件。其中一个文件是250+ MB。在解析时,它似乎挂起了。运行top显示它正在缓慢地填充我的内存,然后开始交换,但在超过一个小时的时间内不会返回(此时我会终止进程并进行搜索)。
我正盯着这样的过程:
>>> import xml.etree.ElementTree as ET
>>> tree = ET.parse('some_xml_file.xml')
但我的任何尝试都是这样的。较小的文件正在正常工作,但是这个大文件正在破坏一些东西。
什么在填充我所有的内存(4GB),我如何
使用xml框架,是直接从指向在线lxml.etree文件的链接解析xml更有效,还是使用不同的框架(如urllib2)返回一个字符串,然后从中解析更好?或者这根本没有什么不同?
方法1-直接从链接解析
from lxml import etree as ET
parsed = ET.parse(url_link)
方法2-从字符串解析
from lxml import etree as ET
import urllib2
xml_string = urllib2.urlopen(url_link).read()
parsed = ET.parse.fromstring(xml_string
我们正面临这样一个问题:在xml消息中,像·(0xB7)、≥(0xDD)、?(0xA8)这样的特殊字符被拒绝,而它们实际上是XML有效字符。我们发现,如果未指定,对于分配给消息的默认编码而言,这些字符是无效的。如果我们专门将编码类型添加到消息的顶部,我们就可以避免这种情况。我们使用UTF-8编码。因此,通过在XML消息的开头添加"“,这些字符就应该成为有效字符。下面是cobol代码:
XML GENERATE RESPONSEDATA FROM ACCT
COUNT IN RESPONSEDATALL
WITH E
可能的重复:
我想在Cocoa Application.but中解析XML文件,没有一个解析器可以很好地工作。请帮助解析此文件或类似于此的其他xml文件。我的Xml文件如下所示:
<book name="Genesis">
<chapter number="1">
<verse number="1">At the first God made the heaven and the earth.</verse>
<verse number="
我正在使用lxml解析一个巨大的etree.parse文件(大约65MB - 300MB)。当我运行包含以下函数的独立python脚本时,我得到一个内存分配失败:
Error:
Memory allocation failed : xmlSAX2Characters, line 5350155, column 16
部分函数代码:
def getID():
try:
from lxml import etree
xml = etree.parse(<xml_file>) # here is where t
我有下面的csv文件(每行是动态字符数,但列是固定的.希望我说得通)
**001** Math **02/20/2013** A
**001** Literature **03/02/2013** B
**002** Biology **01/01/2013** A
**003** Biology **04/08/2013** A
**001** Biology **05/01/2013** B
**002** Math **03/10/
我试图使用下面提供的python代码读取xml文件email.xml(下面的数据),无法打印xml文件中的实际数据,但得到以下输出。我哪里出问题了?
电流输出
xmlfile
<open file 'email.xml', mode 'r' at 0x0226AF98>
[<DOM Element: to at 0x231d620>]
[<DOM Element: cc at 0x231d6c0>]
[<DOM Element: bcc at 0x231d760>]
PYTHON代码
import xml.dom.