在Spidermonkey中输入文件I / O.

时间:2009-06-28 21:40:29

标签: javascript python spidermonkey

感谢python-spidermonkey,使用Python中的JavaScript代码非常简单。

但是,不是使用Python从文件中读取JS代码并将字符串传递给Spidermonkey,是否有办法从Spidermonkey中读取文件(或将文件路径作为参数传递,如在Rhino中)?

2 个答案:

答案 0 :(得分:2)

作为库的SpiderMonkey允许通过使用非NULL filename参数调用JS_EvaluateScript

但是,python-spidermonkey JS_EvaluateScript仅在eval_script方法内调用eval_file_script,而编码仅以字符串形式提供来源。

你应该向python-spidermonkey开发者解决你的问题,或者如果可能的话,你应该更好地解决你的问题! - 为{{1}}方法提供补丁:)

答案 1 :(得分: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);')