如何在命令行中使用JSBeautify?

2024-06-06 12:44:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我喜欢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

Tags: 代码pyorggithubjsreporessome
3条回答

查看this post关于在Textmate中使用JSBeautify的内容。它有一些很好的说明如何安装到您的系统上。在MacOSX上,我使用了:

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来运行它。

您的示例是用作库而不是命令行。如果您试图自己创建一个脚本,该脚本可以接受参数并将其传递给JSBeautifier,那么您应该看看argparse模块。它有一些很好的例子让你去。 文档示例:

>>> 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函数。

通常,您可以使用fileinput模块,该模块将允许您从标准输入或位置参数中命名的文件中读取数据。

相关问题 更多 >