NodeJS:读取一个大的 csv 文件
Posted
技术标签:
【中文标题】NodeJS:读取一个大的 csv 文件【英文标题】:NodeJS: reading a big csv file 【发布时间】:2018-01-19 10:17:18 【问题描述】:所以我有一个 70mb 的 .csv 文件,我想解析并转换为 json,尝试在 500kb 的测试 csv 中进行 json 转换,我找到了一个使用正则表达式的简单解决方案。 问题是当我输入实际数据时,我不能再使用 fs.readFileSync,所以我需要使用流。 我的问题是:如何使用流和正则表达式?假设我的流在可能的正则表达式匹配中间切断了缓冲区,我认为如果发生这种情况我将丢失该数据。此外,数据不是结构化的,所以我没有意识到除了正则表达式之外的其他解析方式。 如果我的解释不清楚,请告诉我,英语不是我的主要语言,但我知道英语社区是最大的也是最快和更可靠的。
提前致谢。
【问题讨论】:
出于好奇,您为此使用 node 有什么原因吗?根据我的经验,Python 或 R 更适合这项任务。 为什么流会切断缓冲区?像这样逐行阅读 - ***.com/questions/16010915/… @spicypumpkin 因为这是一个单一的时间任务,我更熟悉 js 【参考方案1】:有一个稳定的readline核心模块
你可以这样做
let lineReader = require('readline').createInterface(
input: require('fs').createReadStream('file.csv')
)
lineReader.on('line', (line) =>
// do regexs with line
)
【讨论】:
以上是关于NodeJS:读取一个大的 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中将读取一个大的 csv 文件分成大小均匀的块?