如何连接节点.js有python脚本的应用程序?

2024-04-18 01:33:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有节点应用程序流星.js以及使用Pafy的简短python脚本。在

import pafy url = "https://www.youtube.com/watch?v=AVQpGI6Tq0o" video = pafy.new(url) allstreams = video.allstreams for s in allstreams: print(s.mediatype, s.extension, s.quality, s.get_filesize(), s.url)

连接它们的最有效的方法是什么让python脚本从节点.js应用程序并将输出返回到node.js?用Python而不是Meteor.js?在


Tags: httpsimport脚本com应用程序url节点youtube
1条回答
网友
1楼 · 发布于 2024-04-18 01:33:24

嗯,有很多方法可以做到这一点,这取决于你的要求。 一些选项可以是:

  1. 只需使用stdin/stdout和一个子进程。在本例中,您只需要让Python脚本从stdin读取URL,并将结果输出到stdout,然后从Node执行脚本,可能使用child_process.spawn。这是我认为最简单的方法。在
  2. 将Python部分作为一个服务器运行,比如HTTP,但是它可以是任何东西,只要您能够发送请求并获得响应。当您需要来自节点的数据时,只需向Python服务器发送一个HTTP请求,该服务器将在响应中返回所需的数据。在

在这两种情况下,您都应该以易于解析的格式返回数据,否则您将不得不编写额外的(无用的)逻辑来获取数据。使用JSON来处理这类事情非常常见,而且非常简单。 例如,要让您的程序读取stdin并将JSON写入stdout,可以按以下方式更改脚本(input()用于python3,如果使用python2,则使用raw_input()

import pafy
import json

url = input()
video = pafy.new(url)

data = []

allstreams = video.allstreams
for s in allstreams:
    data.append({
        'mediatype': s.mediatype,
        'extension': s.extension,
        'quality': s.quality,
        'filesize': s.get_filesize(),
        'url': s.url
    })

result = json.dumps(data)
print(result)

下面是NodeJS中使用Python脚本的一个非常简短的示例

^{pr2}$

相关问题 更多 >

    热门问题