如何自动格式化Python代码?
我有一些现有的代码,格式不太一致——有时候用两个空格来缩进,有时候用四个空格,等等。代码本身是正确的,也经过了充分测试,但格式实在糟糕。
有没有什么地方可以在线让我直接粘贴一段Python代码,然后自动帮我调整缩进和格式?或者,有没有一个X
工具,我可以像这样使用X --input=*.py
,让它把每个文件都替换成格式化后的版本?
7 个回答
23
使用black这个工具。它只有一个设置选项(行长度),这样可以确保在很多项目中保持一致性。它会强制遵循PEP8规范。
116
autopep8
autopep8 是一个可以自动格式化你 Python 脚本的工具。它不仅会调整代码的缩进,还会处理其他的代码间距风格。使用它可以让你的 Python 脚本符合 PEP8 风格指南。
pip install autopep8
autopep8 your_script.py # dry-run, only print
autopep8 -i your_script.py # replace content
更新:
很多编辑器都有 PEP8 插件,可以在你保存文件后自动重新格式化你的代码。在 emacs 中使用 py-autopep8
yapf
yapf 是一个更新更好的 Python 代码格式化工具。它不仅仅是为了遵循规范,而是力求达到最佳的格式效果。使用方法和 autopep8 很相似。
pip install yapf
yapf your_script.py # dry-run, only print
yapf -i your_script.py # replace content
想了解更多信息,比如格式化配置,请查看 README.rst
文件,地址在 yapf 的 GitHub 上。