PythonでJs2Pyを使用しjsファイルを実行する

PythonでJs2Pyを使用しjsファイルを実行してみます。

Js2Pyは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■jsファイルを用意する

PythonでJs2Pyを使用しjsファイルを実行してみますので、jsファイルを用意します。

■コード

function test(name){
    console.log("Hello,"+name+"!")
}

今回は、testというJavaScriptの関数を定義します。testという関数(function)を定義し、関数の引数,パラメータをnameとします。関数を呼び出した際に実行する処理を中括弧”{}”の中に記述します。記述する処理は、Consoleのlog()関数で、ウェブコンソールにメッセージを出力します。出力するメッセージは、関数の括弧内に記述します。

記述後、このjsファイル(test.js)を保存し、今回は「C:\Users\user_\test(フォルダパス)(保存場所)」に置きます。

■Pythonのスクリプトを用意する

次に、Pythonのスクリプトを用意します。

■コード(script.py)

import js2py

js2py.translate_file(r"C:\Users\user_\test\test.js", "script.py")

インポートでjs2pyを呼び出し、translate_file()関数を使用します。括弧内の第1の引数,パラメータには、先ほど用意したjsファイルの名前と保存場所を指定します。第2の引数,パラメータには、このスクリプトの名前(pyファイル)を指定します。

指定後、このスクリプトをPythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存します。

■コード(script2.py)

from script import *

script.test("test01")

保存後、script2.pyというスクリプトを作成し、「from import」を使い、script.py(パッケージ)を、アスタリスク”*”を使えばまとめてインポートします。

その後、jsファイル内で定義した関数であるtest()関数を使用します。関数の括弧内には、JavaScriptの関数に引数,パラメータとして文字列を渡します。これでjsファイルを実行することができます。

このスクリプトをPythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存します。

■実行・検証

このスクリプトを「script2.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

Traceback (most recent call last):
File "script2.py", line 3, in <module>
script.test("test01")
NameError: name 'script' is not defined

実行すると、NameErrorというエラーが発生します。「scriptが定義されていません」ということですが、この実行を行ったことで、「script.py」の内容が自動的に変更されますので、再度「script2.py」を実行します。

実行してみると、今度は今回用意したjsファイル内で定義した関数が呼び出され、処理が実行し、メッセージが出力されることが確認できました。

コメント

タイトルとURLをコピーしました