Как мне автоформировать некоторый код Python, чтобы он был правильно отформатирован?
У меня есть некоторый существующий код, который не отформатирован последовательно-иногда два пробела используются для отступа, иногда четыре и так далее. Сам код корректен и хорошо протестирован, но форматирование ужасное.
Есть ли в Интернете место, где я могу просто вставить фрагмент кода Python и сделать его отступ/формат автоматически для меня? Кроме того, есть ли X такой, что я могу сделать что-то вроде X --input=*.py и перезаписать каждый файл с форматированной версией?
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