반응형
node.js에서 새로운 프로세스 띄워 python 파일을 실행시키는 작업
먼저 test.py 이름으로 파이썬 파일을 만들어준다.
내용은 랜덤함수로 승리번호와 나의번호를 생성하여 주는 간단한 소스
test.py
import random
def makelotto(a):
while len(a) < 6:
lotto = random.randint(1, 45)
if lotto not in a:
a.append(lotto)
win = []
my = []
makelotto(win)
makelotto(my)
win.sort()
my.sort()
print('Win:', win)
print('Num:', my)
그리고 node에서 실행시키기 위해 spawn.js 이름으로 파일을 생성한다.
spawn.js
const spawn = require('child_process').spawn;
const process = spawn('python', ['test.py']);
process.stdout.on('data', function(data){
console.log(data.toString());
});
process.stderr.on('data', function(data){
console.error(data.toString());
});
const spawn = require('child_process').spawn;
노드에서 다른 프로그램을 실행하거나 명령어를 수행하고 싶을 때 사용하는 모듈
const process = spawn('python', ['test.py']);
python test.py 를 실행하기 위해
spawn의 첫번째 인수로 'python' 을 넣고 뒤에는 파일명을 배열로 넣어준다. ['test.py']
process.stdout.on('data', function(data){
console.log(data.toString());
process.stderr.on('data', function(data){
console.log(data.toString());
결과는 stdout data로 err는 stderr data로 콘솔에 찍힌다.
cmd창에서 node spawn.js 을 실행하면
test.py 가 실행되어 결과값이 찍힌것을 확인 할 수 있다.

문제점 - stdout data로 출력되기 때문에
그레프나 그림 출력은 안되는데 어떡하는건지 모름.
node.js 를 사용해 보고 싶었는데 뭐하는 건지 아직 감이 안온다.
반응형