0

我有一个非常非常大的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...

我不知道如何将所有行更改为数字。有什么建议吗?提前致谢。

4

1 回答 1

1

您可以尝试内存映射文件。请参阅 mmap:此处的文档

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

于 2015-04-10T14:42:06.710 回答