Как мне автоматически отформатировать некоторый код Python для правильного форматирования? - PullRequest
54 голосов
/ 13 апреля 2010

У меня есть некоторый существующий код, который не отформатирован последовательно - иногда два пробела используются для отступа, иногда четыре и так далее. Сам код корректен и хорошо протестирован, но форматирование ужасное.

Есть ли место в Интернете, где я могу просто вставить фрагмент кода Python и сделать для него отступ / форматирование автоматически? В качестве альтернативы, есть ли X такой, что я могу сделать что-то вроде X --input=*.py и перезаписать каждый файл с отформатированной версией?

Ответы [ 5 ]

65 голосов
/ 07 декабря 2012

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 в emacs

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


Обновление 2:

черный

черный намного лучше, чем yapf . Это умнее и подходит для самых сложных случаев форматирования.

44 голосов
/ 13 апреля 2010

Редактировать: В настоящее время я бы порекомендовал autopep8 , поскольку он не только исправляет проблемы с отступами, но и (на ваше усмотрение) заставляет код соответствовать многим другим рекомендациям PEP8.


Используйте reindent.py. Он должен поставляться со стандартным дистрибутивом Python, хотя в Ubuntu вам нужно установить пакет python2.6-examples.

Вы также можете найти его в сети .

Этот скрипт пытается преобразовать любой скрипт на Python в соответствии со стандартом 4 пробела.

12 голосов
/ 07 июня 2018

Используйте черный . У него есть только одна опция (длина линии), чтобы обеспечить согласованность во многих проектах. Это обеспечивает PEP8.

1 голос
/ 21 декабря 2017

Нашел автономное решение с помощью PyCharm

В PyCharm сделать:

1. Выберите все код:

[ctrl]+[A]

2. Отформатировать весь код

[ctrl]+[alt]+[L]
1 голос
/ 13 апреля 2010

Некоторые редакторы имеют функцию автоматического форматирования, которая делает это за вас. Eclipse является одним из примеров (хотя вам, вероятно, придется установить плагин Python).

Вы проверяли, какой редактор вы используете для такой функции?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...