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

问题描述 投票:0回答:8

我有一些现有的代码格式不一致——有时使用两个空格用于缩进,有时使用四个空格,等等。代码本身是正确的并且经过充分测试,但格式很糟糕。

网上是否有一个地方可以让我简单地粘贴一段 Python 代码并自动缩进/格式化?或者,是否有一个

X
,以便我可以执行类似
X --input=*.py
的操作,并用格式化版本覆盖每个文件?

python formatting
8个回答
112
投票

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

有关格式化配置等更多信息,请阅读

yapf github 上的 
README.rst


更新2:

黑色

Blackyapf好得多。它更智能,适合最复杂的格式化情况。


58
投票

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


使用

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

您也可以在网络上找到它。

此脚本尝试转换任何 python 脚本以符合 4 空格标准。


23
投票

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


9
投票

使用 PyCharm 找到了离线解决方案

在 PyCharm 中执行以下操作:

1。选择所有代码:

[ctrl]+[A]

2。格式化所有代码

[ctrl]+[alt]+[L]

2
投票

有些编辑器具有自动格式功能,可以为您完成此操作。 Eclipse 就是一个例子(尽管您可能必须安装 python 插件)。

您是否检查过使用哪个编辑器来实现此类功能?


1
投票

我目前正在使用 Ubuntu 18.04 LTS 和 VSC 作为 python IDE。我的python版本是3.10.5。我注意到在我的计算机上使用 python 解释器与 bash 上使用的解释器之间存在困难。重新格式化一直是这些困难之一,尽管 VSC 确实允许自动格式化,但它似乎不适用于我的系统。一种解决方法是使用 pip 安装单独的 python 相关库,即使用 pip 安装 black:

$ pip install black

安装后,只需使用命令:

$ black <name of your python file.py>

这将直接更改和重新格式化 .py 文件并正确地重新格式化您的代码。


0
投票

你可以简单地使用代码编辑器/解释器,例如:-

  1. Visual Studio 代码
  2. 崇高文字
  3. Pycharm(IDE)
  4. Spyder(IDE)

根据我的经验,Visual Studio Code 有一个很棒的功能,可以在保存代码后自动格式化代码。


0
投票

当我使用命令提示符尝试 IDLE 时,它会安装 black 和 autopep8,但我无法调用它们,因为它们返回“autopep8”不被识别为内部或外部命令、可操作程序或批处理文件。怎么解决?

© www.soinside.com 2019 - 2024. All rights reserved.