我有一些现有的代码没有一致地格式化 - 有时两个空格用于缩进,有时是四个,依此类推。代码本身是正确的,经过充分测试,但格式很糟糕。
在网上有没有我可以简单地粘贴一段Python代码并让它自动缩进/格式化的地方?或者,是否有一个X
,以便我可以执行类似X --input=*.py
的操作并让它用格式化版本覆盖每个文件?
答案 0 :(得分:64)
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是一个新的更好的python代码格式化程序。它试图获得最佳格式,而不仅仅是符合指南。用法与autopep8完全相同。
pip install yapf
yapf your_script.py # dry-run, only print
yapf -i your_script.py # replace content
有关格式配置等详情,请参阅yapf github
上的README.rst
答案 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]