web-dev-qa-db-ja.com

PythonからJavaScriptコードを実行するにはどうすればよいですか?

JavaScriptファイル内にこのコードがあるとしましょう:

var x = 10;
x = 10 - 5;
console.log(x);
function greet() {
  console.log("Hello World!");
}
greet()

Pythonを使用してこのコードを実行するには"print"xHello World!
これは、私が考えていることをさらに説明する擬似コードです。

# 1. open the script
script = open("/path/to/js/files.js", "r")
# 2. get the script content
script_content = script.read()
# 3. close the script file
script.close()
# 4. execute the script content and "print" "x" and "Hello World!"
x = js.exec(script_content)

そして、期待される結果は次のようになります。

>>> 5
>>> "Hello World!"
9
user5870134

モジュールNakedはまさにこれを行います。 pip install Naked(または、必要に応じてソースからインストール)して、次のようにライブラリShell関数をインポートします。

from Naked.toolshed.Shell import execute_js, muterun_js

response = muterun_js('file.js')
if response.exitcode == 0:
  print(response.stdout)
else:
  sys.stderr.write(response.stderr)

特定のケースでは、file.jsを

var x = 10;
x = 10 - 5;
console.log(x);
function greet() {
      console.log("Hello World!");
}
greet()

出力は'5\nHello World!\n'、必要に応じて解析できます。

14
manan