程序化的Python源代码格式化工具

20 投票
5 回答
4924 浏览
提问于 2025-04-17 12:51

我有一大堆Python代码,需要把它们整理成符合pep8风格的格式。pep8有很多不同的版本和规则(比如这个是我同事做的),但最难的就是处理那些太长的代码行,以及如何格式化修改后的代码。

我查了一些相关的问题:

  1. python-formatter-tool
  2. python-source-formatter-pretty-printer

这些问题都是在2009年和2010年提的。我希望自那以后能有更好的工具出现。

我知道PythonTidy这个工具还不错,但在我看来,它把很多代码弄得更糟。Pylint可以检测格式错误,但它并不修正这些错误。网络服务对我来说不太合适,因为我想要一个可以集成到构建过程中的工具。

有没有人有推荐的工具,之前没有提到过的?谢谢。

5 个回答

3

black 是另一个选择。它的卖点在于几乎不需要配置,这样你的团队就能少花时间在细节上争论。

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

顺便提一下,blackyapfautopep8 都有 Python 语言服务器的插件,所以它们可以很好地与文本编辑器(比如 atom 和 vscode)集成。

7

还有一个看起来不错的工具:autopep8

不过要注意,盲目地遵循PEP8中的所有规范其实并不是PEP8的真正意义。PEP8本身也提到:

最重要的是:要知道什么时候可以不遵循规范——有时候,风格指南并不适用。

2

谷歌的 yapf 工具效果非常好。

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

你可以把它整合到你的工作流程中,比如在你编辑器保存文件的时候运行它,或者作为 git 提交前的一个钩子,类似这样的用法。

撰写回答