导入含#符号的CSV文件时出现Syntax Error,如何解决?
解决含#字符CSV文件的解析报错问题
你的报错根本原因不是CSV里的#字符,而是错误地用require()加载CSV文件路径——Node会把CSV内容当作JavaScript模块去解析,自然会触发语法错误。
修正步骤:
- 把通过
require()获取文件路径的代码,改成直接使用字符串路径 require()是用来加载JS模块、JSON等Node原生支持的模块格式的,CSV不属于这类,不需要用它来引入路径
修正后的完整代码:
const fs = require("fs"); const { parse } = require("csv-parse"); // 直接使用文件路径字符串,不要用require const filePath = "./configs/note_freq_440_432.csv"; fs.createReadStream(filePath, { encoding: "utf8" }) .pipe(parse({ delimiter: ",", from_line: 2 })) .on("data", (row) => { console.log(row); }) .on("end", function () { console.log("finished"); }) .on("error", function (error) { console.log(error.message); });
修改后,A#这类特殊字符不会影响csv-parse的正常解析,因为该库默认能正确处理包含非分隔符特殊字符的字段。
内容的提问来源于stack exchange,提问作者Leaozinho
相关产品推荐
相关产品推荐

