2009-06-28 11 views
2

python-spidermonkeyのおかげで、PythonのJavaScriptコードを使用するのは簡単です。SpidermonkeyのファイルI/O

しかし、Pythonを使ってファイルからJSコードを読み込み、その文字列をSpidermonkeyに渡す代わりに、Spidermonkeyからファイルを読み込む方法がありますか(Rhinoのようにファイルパスを引数として渡す方法)ですか?

答えて

2

は、あなただけのPythonの関数をバインドすることができ判明するためのパッチを提供し、 SpiderMonkeyの中からそれを使用します。 http://davisp.lighthouseapp.com/projects/26898/tickets/23-support-for-file-io-js_evaluatescript

import spidermonkey 

def loadfile(fname): 
    return open(fname).read() 

rt = spidermonkey.Runtime() 
cx = rt.new_context() 
cx.add_global("loadfile", loadfile) 
ret = cx.execute('var contents = loadfile("foo.js"); eval(contents);') 
2

SpiderMonkeyをライブラリとして使用すると、JS_EvaluateScriptを非NULL filename引数で呼び出すことができます。

ただし、python-spidermonkeyinterfacing codeeval_scriptメソッドの中でのみJS_EvaluateScriptを呼び出します。これはコード化されたソースとして文字列としてのみ提供されます。可能であれば

あなたは、のpython-SpiderMonkeyの開発者、または-betterにあなたの問題を解決する必要があります - !、たとえば、eval_file_script方法:)

+0

おかげで、それは非常に便利です - 私はそれに見ていきます! – AnC

関連する問題