Python Node JS связь с использованием Python -Shell - PullRequest
0 голосов
/ 30 апреля 2020

Я создаю настольное приложение для моих Python сценариев (без веб-сервера) с использованием Node.JS (Электрон).

Однако на этапе оптимизации у меня возникло следующее требование, что я не могу чтобы найти ответ для:

моего JS кода с использованием python -оболочки, вызывающего мою Python программу с вводом file_name в качестве аргумента, полученного через пользовательский интерфейс. Мой сценарий Python после получения аргумента выполняет db = pd.read_csv(file_name) Это большой файл данных и занимает большую часть общего времени сценария.

После считывания файла в переменную db сценарий выполняет некоторые вычисления и генерирует отчет позже сохранен как файл CSV. db.to_csv(output_file)

Python сценарий затем завершается, и вывод печати выводится на экран в моем приложении gui и переменная db исчезает.

Теперь мой вопрос заключается в том, хочу ли я сгенерировать другой отчет о том, как могу ли я сэкономить время перезагрузки файла csv в мою переменную db.

  • Возможно ли, что переменная python db будет сохранена где-то для более быстрого поиска (например, localalstorage в JS) или,
  • Моя python программа не завершается.

Я уверен, что существует какой-то межпроцессный механизм, о котором я не знаю, поскольку я новичок в этой области.

Некоторая часть кода моего приложения показана ниже для пояснения:

JS Сценарий:

// Some Code...
//Options for python-shell
  var options = {
    // mode:'json',
    scriptPath: path.join(__dirname,'engine/'),
    pythonPath:'my local python installation path',
    args:[input_file]
        }

  // Create an instance of python shell
  var cg = new PythonShell('cg.py',options);


  //handling events from python script cg.py
  cg.on('message',function(message){
    // console.log(message)
    swal(message);
    // pyData = message  
  })

// ...code 

Python Сценарий

import sys             # used for electron js interaction
import pandas as pd

// ....code

file1 = sys.argv[1]
db = pd.read_csv(file1)   // Reading into db as a dataframe

// Rest of My code doing some process on  db dataframe....

// Finally Storing result as output csv file

db.to_csv('output.csv')

sys.stdout.flush()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...