局部变量没有改变

时间:2016-06-08 03:38:50

标签: node.js variables scope

我使用node.js将文本文件转换为CSV。它适用于一个文件,但是当我尝试处理更多文件时, fileDestination 变量不会改变。为什么?输入文件如下:r10_1C_B111_e41-81_ 10 _5X1x9_05_ 列车 2.res 我得到了以下控制台输出:

./1_train.csv has been written successufully! r10_1C_BP1-11_e41-81_10_5X1x9_05_train2.res ./1_train.csv has been written successufully! r10_1C_BP1-11_e41-81_1_5X1x9_05_train2.res



/*
 * lee archivos *.dat y los convierte *.csv
 */

const fs = require('fs');
const inputDir = './';
const outputDir = './';


function readFiles(inputDir, onError) {
  fs.readdir(inputDir, function(err, filenames) {
    if (err) {
      onError(err);
      return;
    }
    filenames.forEach(function(inputFile) {
      // first we arre looking for "right" file name
      if (inputFile.search(/res/) != -1) {
        console.log('Starting processing ' + inputFile);
        convert2csv(inputFile, function(error) {
          throw err;
        });

      }
    });
  });
}

function convert2csv(filename, onError) {
  arrayFromFilename = filename.split('_');
  epoca = arrayFromFilename[4];
  trainORval = arrayFromFilename[7].replace('2.res', '');
  console.log("from convert " + filename + " " + epoca);
  fs.readFile(inputDir + filename, 'utf-8', function(err, content) {
    if (err) {
      onError(err);
      return;
    }
    content = content.replace(/^[^0].*\n/mg, '');
    arr = content.split('\n');
    pares = arr.filter(function(d, i) {
      return i % 2 == 1;
    });
    content = pares.join('\n');
    content = content.replace(/(^[\d.]*) ([\d.]*)/gm, '$1,$2');
    fileDestination = outputDir + epoca + '_' + trainORval + '.csv';
    console.log("filedestination :" + fileDestination);
    fs.writeFile(fileDestination, 'y,x\n', function(err) {
      if (err) {
        return console.error(err);
      }
      fs.appendFile(fileDestination, content, function(err) {
        if (err) {
          return console.error(err);
        }
        console.log(fileDestination + " has been written successufully!", filename);
      });
    });
  });
}




0 个答案:

没有答案