我喜欢jsbeautifier.org,我看到他们的代码有github repo。
自述文件有两个如何通过命令行使用此工具的示例:
import jsbeautifier
res = jsbeautifier.beautify('your javascript string')
res = jsbeautifier.beautify_file('some_file.js')
和
opts = jsbeautifier.default_options()
opts.indent_size = 2
res = jsbeautifier.beautify('some javascript', opts)
如何将其合并到脚本(myjsbeautify.py
)中,以便它可以接受stdin
或参数(文件名)并输出到stdout
?我还想使用keep array indentation
选项。
所需语法
cat ugly.js | myjsbeautify.py
或
myjsbeautify.py ugly.js
答案 0 :(得分:4)
在Textmate上使用JSBeautify查看this post。它有一些很好的说明如何在您的系统上安装它。在Mac OS X上,我使用了:
cd /tmp
git clone https://github.com/einars/js-beautify.git
cd js-beautify/python
python setup.py install
然后您只需使用js-beautify /path/to/filename.js
即可运行。
答案 1 :(得分:0)
您的示例用作库而非命令行。如果您正在尝试自己创建一个可以接受参数并将其传递给JSBeautifier的脚本,那么您应该查看argparse模块。它有一些很好的例子可以让你前进。 来自docs的示例:
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('infile', nargs='?', type=argparse.FileType('r'),
... default=sys.stdin)
>>> parser.add_argument('outfile', nargs='?', type=argparse.FileType('w'),
... default=sys.stdout)
>>> parser.parse_args(['input.txt', 'output.txt'])
Namespace(infile=<_io.TextIOWrapper name='input.txt' encoding='UTF-8'>,
outfile=<_io.TextIOWrapper name='output.txt' encoding='UTF-8'>)
>>> parser.parse_args([])
Namespace(infile=<_io.TextIOWrapper name='<stdin>' encoding='UTF-8'>,
outfile=<_io.TextIOWrapper name='<stdout>' encoding='UTF-8'>)
编辑:您还可以使用jsbeautifier.py
本身使用的getopt。如果您只想使用jsbeautifier.py
作为命令行工具,请从源代码中阅读usage
函数。
答案 2 :(得分:0)
通常,您可以使用fileinput
模块,该模块允许您从标准输入或位置参数中指定的文件中读取。
答案 3 :(得分:0)
我刚刚做了 pip install jsbeautify
,它在我的路径 (js-beautify
) 中添加了 /usr/local/bin/js-beautify
。
您可以按预期使用它:
js-beautify --keep-array-indentation file.json > file.pretty.json
并使用帮助检查更多参数:
js-beautify --help