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ファイル内で定義した関数が呼び出され、処理が実行し、メッセージが出力されることが確認できました。
コメント