使用多处理的Python并行函数

2024-10-03 04:35:58 发布

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

我对python和python2.7都是新手。我正在写一个程序来解析原始文件。我编写了一个函数,它调用一个文件并将每4行放入一个列表中。我的文件很大,比如说4GB的原始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个核心上运行这个功能吗?你知道吗


Tags: 文件数据函数程序列表defcountwith
1条回答
网友
1楼 · 发布于 2024-10-03 04:35:58

正如我在上面的评论中所提到的,你可以通过优化你的函数来获得很多的速度。我建议尝试以下方法:

import itertools

def filerd(f):
    with open(f, "r") as inputfile:
        return list(itertools.islice(inputfile, None, None, 4))

如果不需要将返回值设置为列表,但可以使用迭代器,则可以删除list()。然后,最慢的部分很可能是从磁盘加载数据,这是无论如何都需要做的。你知道吗

相关问题 更多 >