0

我正在使用节点模块 csv-parser 进行流式 csv 解析。上传 CSV(逗号分隔值)时工作正常,但是当我们上传 CSV(Macintosh)文件时,会出现换行符问题。在 Windows 上生成的 CSV 包含这样的换行符 \r\n 但对于 CSV (MAC),它仅包含 \r,因为它是 Mac 格式。需要进行哪些配置才能使其适用于两种文件类型?

这是完成流挂钩的代码片段。

    // Create a read stream for the passed file path and abort if the file is not found
    let readStream: fs.ReadStream;
    try {
      readStream = fs.createReadStream(filePath);
    } catch (error) {
      console.log('Skipped order batch file processing. File not found.');
      resolve();
      return;
    }

    // Create the CSV transform
    let csvStream: Transform;
    if (file.mapping) {
      csvStream = csv({ headers: false });
    } else {
      csvStream = csv();
    }

    readStream
    .pipe(csvStream);

CSV-PARSER 有一个换行参数选项,它的默认值是“\n”,使用“\r”。

 csvStream = csv({ headers: false, newline:"\r" });

如何使换行值有条件地设置,例如,如果它是 csv(Mac)它应该为 CSV(Windows)“\r\n”和 linux“\n”“\r”?

注意:我需要在文件读取中检测到这一点。

您的帮助将不胜感激!谢谢!

4

0 回答 0