Как мне автоформировать некоторый код Python, чтобы он был правильно отформатирован?



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



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

768   5  

5 ответов:

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


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

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

Этот скрипт пытается преобразовать любой скрипт python, чтобы соответствовать стандарту 4-space.

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

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

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

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

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

В PyCharm сделать:

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

[ctrl]+[A]

2. Форматируйте весь код

[ctrl]+[alt]+[L]

Comments

    Ничего не найдено.