Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Node.js调用python脚本_Javascript_Python_Node.js_Spawn - Fatal编程技术网

Javascript 从Node.js调用python脚本

Javascript 从Node.js调用python脚本,javascript,python,node.js,spawn,Javascript,Python,Node.js,Spawn,我必须从Node.js代码中调用python脚本。 我知道我可以使用函数spawn创建一个新的子进程,然后调用脚本python 这就是问题所在:我有一个名为date(在Node.js中使用)的变量,我必须在python脚本中使用how命令行参数 这是我在Node.js中的代码: ... function searchOnGoogle(query, date, options, out, cb) { // startdate = 2451545 // Julian date for 200

我必须从Node.js代码中调用python脚本。 我知道我可以使用函数
spawn
创建一个新的子进程,然后调用脚本python

这就是问题所在:我有一个名为
date
(在Node.js中使用)的变量,我必须在python脚本中使用how命令行参数

这是我在Node.js中的代码:

...
function searchOnGoogle(query, date, options, out, cb) {
    // startdate = 2451545 // Julian date for 2000/01/01

    var python = require('child_process').spawn('python', ["getTweetStartDate.py", date]);
    var startdate = "";
    python.stdout.on('data', function(data){ startdate += data });
    // Tweet start date set 1 month before the tweet date
    ...
这是“getWeetStartDate.py”:

问题是
startdate
data
之间的连接不起作用。特别是如果我在
python.stdout.on('data',function(data){…})中使用
console.log()
我看到正确的值;否则,如果我使用
console.log()
外部
python.stdout.on('data',function(data){…})我看到了空字符串。为什么?

有人能帮我吗


谢谢

“不起作用”到底是什么意思?您是否尝试收听python.stderr以查看是否有错误?当您从shell发出类似的调用时,python脚本是否能像预期的那样工作?python脚本工作得非常好。问题是我没有看到任何东西,可能是因为我有空字符串如何返回值。是否更正了在调用python脚本时如何使用变量date?可能会显示更多代码?不清楚如何/何时尝试使用
startdate
。我修改了代码,现在有了完整的代码。更新问题!!!
import math
import conversionDate
import sys

def oneMonthBeforeJulianDate(dataStartTweet):
    dataStartTweetJulian = conversionDate.jd2date(math.modf(float(dataStartTweet))[1])
    year = dataStartTweetJulian[0]
    month = dataStartTweetJulian[1]
    day = dataStartTweetJulian[2]

    if month == 1:
        month = 12
        year -= 1
    else:
        month -= 1

    dataStartTweetFinal = conversionDate.date2jd(year, month, day)

    filename = "/home/IPA/IPA_ws/gum_en/src/DEBUG_"+str(randint(0, 10000000000000000000))+".txt"
    new_file = open(filename, 'w')
    new_file.write(str(dataStartTweetFinal))
    new_file.close()

    return dataStartTweetFinal

dataGiuliana = sys.argv[1]
print oneMonthBeforeJulianDate(dataGiuliana)
sys.stdout.flush()