如何自动格式化某些Python代码以正确格式化?

时间:2010-04-12 20:42:58

标签: python formatting

我有一些现有的代码没有一致地格式化 - 有时两个空格用于缩进,有时是四个,依此类推。代码本身是正确的,经过充分测试,但格式很糟糕。

在网上有没有我可以简单地粘贴一段Python代码并让它自动缩进/格式化的地方?或者,是否有一个X,以便我可以执行类似X --input=*.py的操作并让它用格式化版本覆盖每个文件?

5 个答案:

答案 0 :(得分:64)

autopep8

autopep8会自动格式化你的python脚本。不仅是代码缩进,还有其他编码间距样式。它使您的python脚本符合PEP8样式指南。

pip install autopep8
autopep8 your_script.py    # dry-run, only print
autopep8 -i your_script.py # replace content

更新

许多编辑都有pep8插件,可以在保存文件后立即自动重新格式化代码。 py-autopep8 in emacs

yapf

yapf是一个新的更好的python代码格式化程序。它试图获得最佳格式,而不仅仅是符合指南。用法与autopep8完全相同。

pip install yapf
yapf your_script.py    # dry-run, only print
yapf -i your_script.py # replace content

有关格式配置等详情,请参阅yapf github

上的README.rst

更新2:

Blackyapf好得多。它更智能,适合大多数复杂的格式化案例。

答案 1 :(得分:43)

编辑:现在,我建议autopep8,因为它不仅可以纠正缩进问题,而且(由您自行决定)使代码符合许多其他PEP8指南。


使用reindent.py。它应该附带Python的标准发行版,但在Ubuntu上你需要安装python2.6-examples包。

您也可以在web上找到它。

此脚本尝试将任何python脚本转换为符合4空间标准。

答案 2 :(得分:12)

使用black。它故意只有一个选项(行长),以确保许多项目的一致性。它强制执行PEP8。

答案 3 :(得分:1)

某些编辑器具有自动格式功能,可以为您执行此操作。 Eclipse就是一个例子(尽管你可能需要安装一个python插件)。

您是否检查过用于此类功能的编辑器?

答案 4 :(得分:1)

  

使用PyCharm找到离线解决方案

在PyCharm中:

<强> 1。选择所有代码:

[ctrl]+[A]

<强> 2。格式化所有代码

[ctrl]+[alt]+[L]