How can I execute JavaScript code from Python?

21,927

The module Naked does exactly this. pip install Naked (or install from source if you prefer) and import the library shell functions as follows:

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)

For your particular case, with file.js as

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

the output is '5\nHello World!\n', which you can parse as desired.

Share:
21,927
Admin
Author by

Admin

Updated on November 19, 2020

Comments

  • Admin
    Admin over 3 years

    Lets say that I have this code inside a JavaScript file:

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

    How would I use Python to execute this code and "print" x and Hello World!?
    Here is some pseudo code that further explains what I'm thinking:

    # 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)
    

    And, the expected result would look like this:

    >>> 5
    >>> "Hello World!"
    
  • Admin
    Admin over 7 years
    Thank you for the answer and help, appreciate it.
  • manan
    manan over 7 years
    @Mango glad I could help :)