Wie mache ich spawnSync und fs.readFile, um eins nach dem anderen auszuführen?

Ich habe ein Python-Skript, das eine JSON Datei als Ausgabe zurückgibt, indem sie eine FILE als Eingabe nimmt.

Ich habe 10 Dateien, ich benutze SpawnSync innen für Loop und Innenschleife Ich habe fs.readFile zum Lesen der JSON-Datei, die aus dem Python-Skript kommt.

  • Wie bekomme ich die Python-Funktion von NodeJS?
  • Aber das Problem ist spawnSync blockiert fs.readFile, bis es Python-Skripte mit allen 10 Dateien ausführt. Da sowohl spawnSync als auch fs.readFile für die Schleife sind , möchte ich fs.readFile eine JSON-Datei lesen, sobald das erste Python-Skript die JSON-Datei ausführt und ausgibt.

    Aber es ist nicht passiert SpawnSync blockiert und es wird mit der nächsten Datei fortgesetzt, um das Python-Skript auszuführen. Fs.reafFile sollte Daten drucken, sobald die Datei ausgeführt wird. Bitte helfen, hier ist mein Code-Snippet.

     var spawn = require('child_process').spawnSync; var fs = require('fs'); var filename = ['first.txt','second.txt','third.txt',....] for(var i=0;i<10;i++) { var myscript = spawn('python',['/pathToPython/myPython.py',filename[i]]); fs.readFile('/pathToPython/' + filename[i] + '.json','utf8',function(err,data){ if(err){ console.log(err); }else{ console.log(data); } }); } 

  • Python Regex Interpunktion Erkennung
  • Ausfiltern von Strings, die nur Ziffern und / oder Interpunktion enthalten - Python
  • Entfernen von Escaped Entities aus einer String in Python
  • Verbinde Split Worte und Interpunktion mit Interpunktion an der richtigen Stelle
  • Beste Weg, um Interpunktion von einer Zeichenfolge in Python zu streifen
  • Was bedeutet Python string.maketrans ("", "")
  • One Solution collect form web for “Wie mache ich spawnSync und fs.readFile, um eins nach dem anderen auszuführen?”

    Wenn Sie sich verlassen, um Drittanbieter-Modul verwenden, dann empfehle ich async.eachSeries die Methode des asynchronen Moduls verwenden, um dieses Problem zu beheben

     var filename = ['first.txt','second.txt','third.txt',....] async.eachSeries(filename, function(item, next) { var myscript = spawn('python', ['/pathToPython/myPython.py', item]); fs.readFile('/pathToPython/' + item + '.json', 'utf8', function(err, data) { if (err) { console.log(err); } else { console.log(data); next(); } }); }) 
    Python ist die beste Programmiersprache der Welt.