从JavaScript到Python代码的转换?

从JavaScript到Python代码的转换?,javascript,python,code-translation,Javascript,Python,Code Translation,是否有一个相对快速的计划至少可以完成这方面的基础工作?就几个正则表达式?我愿意进行一些手动转换,但这是一组相当大的脚本。如果您要求的是将javascript中的一些正则表达式转换为Python等效的正则表达式,那么正则表达式的基础知识基本上都是相当标准的。看看这本书。查看是否记录了您正在使用的内容。你也感兴趣的是佩奇 如果您正在谈论将javascript代码转换为Python等效代码,那么最好的转换器是you。了解Python,然后手动转换它们。没有什么比人类更好的了。像循环、变量、数组这样的编

是否有一个相对快速的计划至少可以完成这方面的基础工作?就几个正则表达式?我愿意进行一些手动转换,但这是一组相当大的脚本。

如果您要求的是将javascript中的一些正则表达式转换为Python等效的正则表达式,那么正则表达式的基础知识基本上都是相当标准的。看看这本书。查看是否记录了您正在使用的内容。你也感兴趣的是佩奇

如果您正在谈论将javascript代码转换为Python等效代码,那么最好的转换器是you。了解Python,然后手动转换它们。没有什么比人类更好的了。像循环、变量、数组这样的编程结构非常常见和标准,您将立即认识到如何使用它们。

更新 现在几(4)年后,这(几乎可以肯定)是可以做到的;当然,对于正则表达式,情况并非如此。 我建议未来的读者看看。 或者其他一些答案。(我不知道还没有试过)


原始答案 嗯,这很难。 编译器的定义是从高级语言转换为低级语言。 例如python到机器代码。 或者java到javascript(谷歌在某个地方有一个相当著名的编译器——这就是“谷歌文档更容易制作的原因”) Python到javascript的编译器比比皆是。 从技术上讲,javascript到python将是一个反编译器。(阿法克)

我发现了一些关于javascript-python转换器的猜测。它主要讲的是如何做到这一点不会太难。 我什么也找不到,但这并不意味着外面没有

正则表达式不适用,正则表达式只适用于正则语言。
编程语言通常不是常规语言。参见

这个答案可能晚了2年,但是js->coffeescript->python怎么样?如果您使用诸如转换为cs之类的工具,那么缩进和列表之类的工具已经为您完成了。

您可以使用将JavaScript转换为Python。它支持整个JavaScript,您可以使用它来翻译大型JavaScript模块,如
esprima.js
(JavaScript6解析器)


简短演示:

>>> import js2py
>>> f = js2py.eval_js( "function $(a) {return a + arguments[1]}" )
>>> f
function $(a) { [python code] }
>>> f(1, 2, 3)
3

这就是翻译后的函数在内部的样子(相当难看):


你的问题听起来很模糊。请补充更多。我不确定是否存在这样的转换工具。平心而论,这不仅仅是“几个正则表达式”;问题是,javscript和python程序都不是正则语言……我在网上见过很多人想用正则表达式来完成很多不该用的事情。。。不过,将python转换为js很容易。这个问题不是很模糊,我建议查看@Piotr Dabkows的答案,我相信我的答案现在已经被取代并且过时了。谢谢,我想我必须手动操作才能正确完成。js2py.eval_js是否支持“require”语句?@AlekhyaSatya我不知道。请不要在评论中提问(这里有一个提问按钮:-),除非coffeescript转换为js,而不是相反,这就是我建议使用js2coffee的原因
>>> print js2py.translate_js( "function $(a) {return a + arguments[1]}" )
from js2py.pyjs import *
var = Scope( JS_BUILTINS )
set_global_object(var)
# Code follows:
var.registers([u'$'])
@Js
def PyJsHoistedNonPyName(a, this, arguments, var=var):
    var = Scope({u'a':a, u'this':this, u'arguments':arguments}, var)
    var.registers([u'a'])
    return (var.get(u'a')+var.get(u'arguments').get(u'1'))
PyJsHoistedNonPyName.func_name = u'$'
var.put(u'$', PyJsHoistedNonPyName)