我有一个大约有 300 万行的文件。每行包含一些我想解析并将其发布到远程服务调用的数据。
如果我按顺序读取文件,则整个程序完成运行所需的时间太长。
我正在考虑启动一个线程池,每个线程在文件的不同行上迭代(例如:线程 1 将读取第 1 行到第 10 行,线程 2 读取第 11 行到第 20 行等等),经典 map/reduce问题。有没有一种在 python 中可以快速完成此任务的方法,任何可以帮助我完成此任务的库。
最佳答案
如果是逐行读取文件,用python做多线程是不容易的。因为seek()方法需要知道每一行的字节偏移量。
另一种方法是先拆分文件,比如在 Linux 上使用“拆分”。然后启动多个线程分别处理拆分后的文件。
关于 python : How to make different thread read different sections of my file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29270188/