我写了一行很长的XML文件。 我想提取它的一些特性,并认为这样做更容易,只要在每个标记之后将长线分割成新行。你知道吗
文件的构建方式如下:
<textA textB textC> <textD textE textF> <textG textH textI>
我现在开始用以下代码破解这条长线:
eof = 0
while eof == 0:
character = historyfile.read(1)
if character != ">" and character != "":
output.write(character)
if character == ">":
output.write('>' + '\n')
if character == "":
eof = 1
不幸的是,这段代码将需要大约12天来处理整个文件。 我现在在想,是否有更快的方法可以以类似的方式处理文件,至少需要两倍的时间。你知道吗
我的第一个想法是只解析文件并替换结束标记,如下所示:
for line in infile:
line.replace('>', '>' + '\n')
你认为这种方法会快得多吗?我想自己试试,但我已经有了运行1天半的第一个代码;)
如果您尝试逐行读取文件,也就是1TB的一行,您将得到一个长度相同的
str
变量。我不知道具体的实现细节,但我猜,在阅读结束之前很久就会出现一个MemoryError
。你知道吗相关问题 更多 >
编程相关推荐