程序化python源格式化程序

时间:2012-02-11 18:18:38

标签: python

我有一大堆python代码,需要对它施加符合pep8的样式/格式。 pep8的变体有各种规则(如this one by a coworker),但最难的是处理拆分太长的行并格式化修改后的代码。

我已经查询了这个问题:

  1. python-formatter-tool
  2. python-source-formatter-pretty-printer
  3. 它们来自2009年和2010年。我希望从那时起开发出更好的工具。

    我知道PythonTidy这是非常好的但是会让很多代码变得更糟,恕我直言。 Pylint检测到格式错误但未更正它们。 Web服务与我的要求并不真正相关,因为我想要一个可以构建的工具。

    有没有人提出尚未涵盖的建议?感谢。

5 个答案:

答案 0 :(得分:7)

另一个看起来相当不错的人:autopep8

但请注意,盲目遵循PEP8中的所有惯例并非真正符合PEP8的精神。来自PEP8本身:

  

但最重要的是:知道何时不一致 - 有时是   风格指南不适用。

答案 1 :(得分:2)

PyCharm内置了此功能,现在有一个免费的开源社区版。打开文件并点击 Ctrl Alt L

不幸的是,它不会自动将函数名和变量名重构为PEP8约定......这些必须通过PyCharm的重命名功能逐一完成。

答案 2 :(得分:1)

PythonTidy似乎很好地分割了行http://www.lacusveris.com/PythonTidy/

答案 3 :(得分:1)

Google的yapf效果非常好。

这里有一个在线演示:yapf.now.sh

您可以将它集成到您​​的工作流程中,并在编辑器中保存文件时运行它,或者作为git precommit hook或类似的东西运行。

答案 4 :(得分:0)

black是另一个竞争者。卖点是,它几乎是不可配置的,因此您的团队浪费更少的时间来讨论细节。

这里有一个在线演示:black.now.sh

旁注:blackyapfautopep8具有python语言服务器插件,因此它们与包括原子和vscode的文本编辑器很好地集成了。