读取大型CSV文件的有效方法

Effective method for reading large CSV files?

本文关键字:有效 方法 文件 大型 CSV 读取      更新时间:2023-10-16

我目前有5个CSV文件,每个文件大约有45000条记录。做这件事最好的方法是什么?我以前做过I/O,但从来没有这么大规模过。解析成矢量字符串?

是的,将它们读入vector是合理的。

存储的选择在一定程度上取决于你计划做什么,以及数据是什么。如果你知道数据的格式是什么,你可能想创建一个struct,并将数据读取为更有组织的形式。例如,如果文件是这样的:

name, score, err
Mats, 89, 2.1%
Steve, 79, 8%

那么你可以有这样的结构:

struct Row
{
   string name;
   int    score;
   float  err;
}

正如评论所说,45K线路并不多,除非你在具有手表计算能力的设备上运行,否则它不会引起任何重大问题。

继续做您正在做的事情:将所有行读取到strings的Vectorstrings的VectorVector或对象的Vector中。我们谈论的是200到500 MB的RAM,而现在大多数计算机的可用内存远不止这些。从处理时间的角度来看,在一台普通计算机中,这将是5到10分钟(当然,这取决于处理量)。

如果你遇到任何问题,问一个新问题并提供更多信息。