有没有一种方法可以加快此Python代码的速度,我正在读取多个GB的文本

问题描述 投票:0回答:1

我有一个很大的数据库作为文本文件(大约1GB),我正在尝试将信息行设置为一行,以便能够对这些行进行一些数据分析。数据库的格式如下

>Title 1 Line
Data 1 Line
Data 1 Line
Data 1 line 
>Title 2 Line
Data 2 Line
Data 2 Line
Data 2 Line ....

我希望我的输出是

>Title 1 Line
Data 1 Line
>Title 2 Line
Data 2 Line

这是我执行此操作的代码:

#opening document using open 
Data = open("Dataset.txt", "r")

#defining file name for lines 

protein = Data.readlines()


#variable defining for rewrite

proteinfinal = ""

for line in protein:
    if ">" in line:
        proteinfinal += line
    else:
        proteinfinal += line.strip("/n")
#removing final and last to remove lines
#print(proteinfinal.strip())
#closing file 
Data.close()

# Make a new file
Data = open("Dataset.txt", "w")
#write to file 
Data.write(proteinfinal)
#close file
Data.close()

无论如何,它已经运行了一段时间,并且代码在几分钟内就可以在数据集的较小子集(10,000)行上运行。

python python-3.x
1个回答
0
投票

是,不要使用readlines,直接遍历文件对象。更重要的是,不要使用+=循环增加列表,这会使您产生二次行为。尝试以下操作:

protein_parts = []
with open("Dataset.txt", "r") as f:
    for line in f:
        if ">" in line:
            protein_parts.append(line)
        else:
            protein_parts.append(line.strip("\n"))
proteinfinal = ''.join(protein_parts)
© www.soinside.com 2019 - 2024. All rights reserved.