【发布时间】:2018-07-29 03:29:05
【问题描述】:
我目前从 CSV 文件中提取数据。 CSV 文件有大约 89 列和 2000 行的数据。我使用各种 getlines 和循环获得了几个特定的数据列,例如 col:1,2,21,22,66,67 的所有列。然后我将该数据存储到循环内的向量中。一旦我通读了整个文件,我现在就有了 6 个充满我想要的数据的向量。我对该数据进行了一些调整并将其存储回向量中。我现在想将这些新数据放回我从中取出的那些列中,而无需实际拾取/取出我不想要的其他数据。最好的方法是什么?由于我不想制作 89 个变量来保存所有其他数据,因此我更愿意在这些列上特别写或类似的东西。
【问题讨论】:
-
一次从一个文件读取一行并输出到另一个文件。您无法实际“编辑”文件,因此将每一行读入内存,更改值并输出到不同的文件。
-
我想过,但这似乎是一种非常低效的方法,还是我错了?
-
对文本文件执行随机访问非常困难,而且对于像数据集这样的小数据大小,效率并不是真正的问题。
-
我使用的实际数据集要大得多。约 89 列和 500k 行,并且可以更多。我只是将其减少了一点以使其更易于管理。
-
@Steven:从实际角度来看,你有两个选择:要么读取旧文件,修改所需数据,然后写入包含修改和未修改数据的全新文件,要么切换到完全是其他一些文件格式(例如,一种真正旨在支持单独修改零碎的数据库格式)。
标签: c++ csv large-data