将超长线路拆分为多条线路的最快方法

2024-04-25 23:08:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一行很长的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天半的第一个代码;)


Tags: 文件方法代码标记outputif方式line
1条回答
网友
1楼 · 发布于 2024-04-25 23:08:45

如果您尝试逐行读取文件,也就是1TB的一行,您将得到一个长度相同的str变量。我不知道具体的实现细节,但我猜,在阅读结束之前很久就会出现一个MemoryError。你知道吗

相关问题 更多 >