質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

3110閲覧

PythonからJavaScriptの関数を使う際の実行速度を改善させたい

asaasa

総合スコア12

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/02/13 09:07

PythonからJavaScriptの関数を使う際の実行速度を改善させたい

PythonからJavaScriptの関数の効率的な使い方を教えてください。

テキスト処理のプログラムをPythonで作成しています。
その際、JavaScriptの関数を使用したい箇所があります。
Pythonのsubprocessモジュールを使い、jscコマンドで
JavaScriptのプログラムを実行しています。
入力と出力はファイルの読み書きで行なっているため、
動作が遅いです。

この実行速度を改善する方法を教えてください。
MacOSを使っています。
以下が作成したコードです。

PythonとJavaScriptのソースコード

Python

1import subprocess 2#処理したい文字列を入力し、JavaScriptの関数で処理した文字列を出力 3def process_txt(string): 4 f = open('tmp_input.txt','w') 5 f.write(string) 6 f.close() 7 8 cmd = 'jsc process_txt.js <tmp_input.txt >tmp_output.txt' 9 subprocess.call(cmd,shell = True) 10 11 f = open('tmp_output.txt','r') 12 s = f.read() 13 f.close() 14 return s

JavaScript

1//process_txt.js 2let input = this.readline(); 3let output = process_txt(input);//この関数を使用したい 4print(output);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

毎回プロセスから立ち上げてるから重いんだよね?
jscにこだわらないならNode.jsに以降してlocalhostで何らかのサーバとして立ち上げっぱなしにすれば解決しそうだね。

そしたらPythonからリクエスト飛ばしてNode.jsの関数の実行結果を受け取るだけでいい。
Node.jsはWebサーバやWebSocketのサーバを構築するのがめっちゃ楽だからすぐ用意出来ると思うよ。

投稿2019/02/13 09:25

編集2019/02/13 09:54
miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asaasa

2019/02/13 09:50

ありがとうございます。 Node.jsのことを調べて、やってみようと思います。
asaasa

2019/02/14 07:28

Node.jsでサーバを立ち上げて実行しました。 前回と比べて実行速度が速くなりました。 実行速度が遅い原因についてファイルの入出力のせいだと考えていましたが、 プロセスの立ち上げを行なっているせいだと 教えてくださり勉強になりました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問