代码之家  ›  专栏  ›  技术社区  ›  Bharat Paudyal

在节点中读取CSV,并通过排除指定的行来创建新文件

  •  0
  • Bharat Paudyal  · 技术社区  · 7 年前

    我需要读取一个CSV文件,指定一个行号,脚本应该通过获取我们指定的行下面的行来创建一个新文件。理想情况下,它应该排除上述所有行(包括指定的行)。我尝试使用事件流,但它占用每一行。有什么想法吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   vibhor1997a    7 年前

    您可以使用 fs 模块本身。

    一个简单的演示来实现你想要的。

    const fs = require('fs');
    const os = require('os');
    function copyBelowLine(inputFilePath, copyPath, line, callback) {
        fs.readFile(inputFilePath, 'utf-8', (err, data) => {
            if (err) {
                callback(err);
            }
            else {
                data = data.split(os.EOL);
                data = data.splice(line, data.length);
                data = data.join(os.EOL);
                fs.writeFile(copyPath, data, err => {
                    if (err) {
                        callback(err);
                    }
                    else {
                        callback();
                    }
                });
            }
        });
    }
    
    copyBelowLine('./abc.txt','./out.txt', 3, err => {
        if (err) {
            console.log(err);
        }
        else {
            console.log('Successfully copied the file!');
        }
    });