multiprocess在python中读取一个文件

时间:2015-04-10 14:00:11

标签: python multiprocessing mpi4py

我有一个非常大的txt.file(大约20G),我可以使用多进程来读取整个文件而不是从第一行读到它吗?

例如,我有4个进程,然后我先计算文件的行数(假设它有2000行)。进程1读取1~500行,进程2读取501~1000,我想知道是否可能(如果一个进程正在读取,可以同时读取另一个进程吗?)。也许这个问题是关于如何拆分txt文件。

如果没问题。怎么做? 文件的一个进程的代码如下:

file = open(file_path,"r",encoding = 'utf-8')
alllines = file.readlines()
file.close()

for line in alllines:
    to do...

我不知道如何改变alllines成为数字。任何建议?提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试映射文件的内存。请参阅mmap:documentation here

然后,您可以通过多处理任务读取文件,访问映射文件而不是HDD。