代码之家  ›  专栏  ›  技术社区  ›  John Feminella

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

  •  49
  • John Feminella  · 技术社区  · 15 年前

    我有一些现有的代码格式不一致——有时两个空格用于缩进,有时四个空格,以此类推。代码本身是正确的,经过了很好的测试,但是格式很糟糕。

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

    5 回复  |  直到 15 年前
        1
  •  57
  •   unutbu    10 年前

    编辑:现在,我推荐 autopep8


    使用 reindent.py . 它应该与Python的标准发行版一起提供,不过在Ubuntu上您需要安装 python2.6-examples 包裹。

    web .

        2
  •  90
  •   d2207197    7 年前

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

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

    更新:

    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
    

    README.rst yapf github


    黑色

    Black 比以前好多了 雅芙 . 它更聪明,适合最复杂的格式化情况。

        3
  •  22
  •   ndou    7 年前

    black . 它故意只有一个选项(行长度)来确保许多项目的一致性。它强制执行PEP8。

        4
  •  5
  •   mrk    7 年前

    找到了PyCharm的脱机解决方案

    1.选择所有代码:

    [ctrl]+[A]
    

    2.格式化所有代码

    [ctrl]+[alt]+[L]
    
        5
  •  2
  •   Chris    15 年前

    有些编辑器有一个自动格式化功能,可以为您实现这一点。Eclipse就是一个例子(尽管您可能需要安装python插件)。