【发布时间】:2012-04-14 15:15:12
【问题描述】:
我的 CSV 文件有多个已排序的列。例如,我可能有这样的行:
19980102,,PLXS,10032,Q,A,,,15.12500,15.00000,15.12500,2
19980105,,PLXS,10032,Q,A,,,14.93750,14.75000,14.93750,2
19980106,,PLXS,10032,Q,A,,,14.56250,14.56250,14.87500,2
20111222,,PCP,63830,N,A,,,164.07001,164.09000,164.12000,1
20111223,,PCP,63830,N,A,,,164.53000,164.53000,164.55000,1
20111227,,PCP,63830,N,A,,,165.69000,165.61000,165.64000,1
我想根据第 3 列划分文件,例如将 PLXS 和 PCP 条目放入它们自己的名为 PLXS.csv 和 PCP.csv 的文件中。因为文件恰好是预先排序的,所以所有 PLXS 条目都在 PCP 条目之前,依此类推。
我通常最终会在 C++ 中做这样的事情,因为这是我最了解的语言,但在这种情况下,我的输入 CSV 文件有几个 GB 并且太大而无法在 C++ 中加载到内存中。
有人能说明如何做到这一点吗? Perl/Python/php/bash 解决方案都可以,它们只需要能够处理巨大的文件而不会占用过多的内存。
【问题讨论】:
-
你浏览过吗?本网站上所有上述语言的几个相关问题等等。您可以搜索:
site:stackoverflow.com csv split by value或一些此类变体。祝你好运
标签: csv text split large-data