2016-07-27 9 views
6

Lassen Sie uns sagen, dass ich diesen Code in einer JavaScript-Datei:Wie kann ich JavaScript-Code von Python ausführen?

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

Wie würde ich Python verwenden diesen Code und "print"x und Hello World! auszuführen?
Hier einige Pseudo-Code, der weiter erklärt, was ich denke:

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

Und würde das erwartete Ergebnis wie folgt aussehen:

>>> 5 
>>> "Hello World!" 
+0

Dies kann helfen: https://pypi.python.org/pypi/PyExecJS – FailedUnitTest

+0

@FailedUnitTest Vielen Dank für den Link. Kann der Down-Voter auch erklären, warum & wie dies zu weit gefasst ist? –

Antwort

6

Das Modul Naked tut genau dies. pip install Naked (oder von der Quelle installieren, wenn Sie bevorzugen) und die Bibliothek Shell-Funktionen importieren wie folgt:

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) 

Für Ihre speziellen Fall mit file.js als

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

ist der Ausgang '5\nHello World!\n', die Sie kann wie gewünscht parsen.

+0

Danke für die Antwort und Hilfe, schätzen Sie es. –

+1

@Mango froh, ich könnte helfen :) – manan

Verwandte Themen