【发布时间】:2022-09-23 05:33:40
【问题描述】:
我正在学习如何将 csv-parse 模块用于 nodejs。我写了这段代码,它完美地工作:
var fs = require(\'fs\');
const fileName = \'./spreadsheet.csv\';
const assert = require(\'assert\');
const { parse } = require(\'csv-parse\');
const records = [];
// Initialize the parser
const parser = parse({
delimiter: \',\'
});
// Use the readable stream api to consume records
parser.on(\'readable\', function(){
let record;
while ((record = parser.read()) !== null) {
records.push(record);
}
});
// Catch any error
parser.on(\'error\', function(err){
console.error(err.message);
});
fs.readFile(fileName, \'utf8\', function (err, f) {
if (err) {
return console.error(err);
}
const rows = f.split(\"\\r\\n\");
for(let x in rows) {
parser.write(rows[x]+\"\\n\");
}
parser.end();
console.log(records);
});
但现在,我依赖 fs 模块和 fs.readFile 来使用我的 csv 文件。 csv-parse 是否可以选择从文件中读取?我问是因为正如您在我的代码中看到的那样,我必须指定我自己的 line-break 字符,这在 csv 文件之间可能会有所不同。我想也许csv-parse 模块会有更容易解决这种情况的东西?