我有大约 60 个文件,每个文件包含大约 900000 行,每行都是 17 个制表符分隔的 float 。每行我都需要使用所有 60 个文件中的所有相应行进行一些计算,但由于它们的大小巨大(每个文件大小为 400 MB)和有限的计算资源,所以需要很长时间。我想知道有什么解决办法可以快速做到这一点吗?
最佳答案
这取决于你如何处理它们。如果你有足够的内存,你可以先读取所有文件并将它们更改为python数据结构。然后就可以进行计算了。
如果您的文件无法放入内存,最简单的方法可能是使用某种分布式计算机制(hadoop 或其他更轻量级的替代方案)。
另一个较小的改进可能是使用 fadvice linux 函数调用来说明您将如何使用文件(顺序读取或随机访问),它告诉操作系统如何优化文件访问。
如果计算适合一些常见的库,例如 numpy numexpr,它有很多优化,您可以使用它们(如果您的计算使用未优化的算法来处理它们,这会有所帮助)。
关于python - 在 Python 中处理多个大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24447455/