Tuesday, May 21, 2024
 Popular · Latest · Hot · Upcoming
197
rated 0 times [  200] [ 3]  / answers: 1 / hits: 23780  / 8 Years ago, wed, july 27, 2016, 12:00:00

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!

More From » python

 Answers
12

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 '5nHello World!n', which you can parse as desired.


[#61232] Monday, July 25, 2016, 8 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
jadyngraysons

Total Points: 455
Total Questions: 109
Total Answers: 98

Location: Trinidad and Tobago
Member since Fri, May 8, 2020
4 Years ago
;