所以我已经四处看看了,找不到我认为遇到的用例。
对于某些背景: 我对JavaScript相当陌生,从不需要调用任何其他程序/脚本。现在,我确实开发了一个Python脚本,该脚本从在线来源中提取一些数据,对其进行格式化并将其转储到JSON文件中。为了正确显示这些数据,我认为我会使用Electron。
虽然处理JSON文件是完全可以的(如果不是我会很遗憾的话),我需要能够调用Python脚本来更新我的Electron UI中的数据。我希望,由于一切都是本地的,因此,除了能够为运行Python脚本的服务器设置一些服务器之外,还有一种更简便的方法,就是能够从我的桌面应用程序触发其执行。尤其是这样,因为我什至不需要获取或处理任何回报,我只想触发该脚本的执行。
因此,现在的问题是:是否有这种“简便”的方法可以从基于Electron / JavaScript的本地保存的桌面应用程序执行Python脚本?
提前感谢您的回答!
答案 0 :(得分:0)
就像前面提到的评论者一样,您应该能够在Node.js(Electron使用的)中关注this SO answer。
要稍微解释一下这个答案,我建议使用built-in Python JSON utility将JSON转储到标准输出中(只打印出JSON字符串),然后使用built-in Node.js JSON utility进行解析将该JSON字符串转换为可在您的应用程序中使用的javascript对象。
答案 1 :(得分:0)
好的,因此,在重定向到this thread之后,如果您对此问题感兴趣,我只能建议您通读一遍,然后我接受了他们的解决方案并做了一些改动,这花了我一些时间,有点混乱,我现在想让你们省!
重新提出该问题:目标是从基于JavaScipt / Electron的UI调用python脚本。只需执行python脚本,但由于它是一个更新功能,因此需要onClick发生。
现在这是我使用的代码:
const exec = require("child_process").exec;
function triggerUpdateAndRefreshFooter() {
exec('python relativePathToScript/update.py',
function(error, stdout, stderr) { //callback function, receives script output
refreshFooter(); //don't use the output, but I could here
}
)
}
我确实在找出另一个线程中的所有const内容时遇到了一些问题,并且不得不猜测是否可以在单独的函数中执行脚本。最终,它成功了!
我希望这会有所帮助!