我是python的新手,使用python 2.7。 我正在编写一个程序来解析原始 re 文件。我写了一个函数,它调用一个文件并将每 4 行放在一个列表中。我的文件很大,比如4 GB的原始DNA数据。
def filerd(f):
identifier = []
with open(f,'r') as inputfile:
count = 1
for line in inputfile:
if count%4 == 1:
identifier.append(line)
count = count + 1
else:
count = count + 1
return identifier
现在我如何并行化这个函数,以便我可以加速。 有什么方法可以在服务器的 5 个内核上运行此功能?
正如我在上面的评论中提到的,仅通过优化函数,您可能会获得很多速度。我建议尝试以下方法:
import itertools
def filerd(f):
with open(f, "r") as inputfile:
return list(itertools.islice(inputfile, None, None, 4))
如果您不需要返回值是列表,但可以使用迭代器,则可以删除list()
。然后,最慢的部分很可能是从磁盘加载数据,无论如何您都需要这样做。