108 votes

Comment puis-je autoformater du code Python pour qu'il soit correctement formaté ?

J'ai du code existant qui n'est pas formaté de manière cohérente - parfois deux espaces sont utilisés pour l'indentation, parfois quatre, et ainsi de suite. Le code lui-même est correct et bien testé, mais le formatage est horrible.

Existe-t-il un endroit en ligne où je peux simplement coller un bout de code Python et le faire indenter/formater automatiquement pour moi ? Alternativement, existe-t-il un X de sorte que je puisse faire quelque chose comme X --input=*.py et qu'il écrase chaque fichier par une version formatée ?

104voto

d2207197 Points 121

autopep8

autopep8 formaterait automatiquement votre script python. non seulement l'indentation du code, mais aussi d'autres styles d'espacement du codage. Il rend votre script python conforme au guide de style PEP8.

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

Mise à jour :

De nombreux éditeurs disposent de plugins pep8 qui reformatent automatiquement votre code dès que vous enregistrez le fichier. py-autopep8 dans emacs

yapf

yapf est un nouveau et meilleur formateur de code python, qui essaie d'obtenir le meilleur formatage, et pas seulement de se conformer aux directives. L'utilisation est assez similaire à celle d'autopep8.

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

Pour plus d'informations, comme les configurations de formatage, veuillez lire le document README.rst sur yapf github


Mise à jour 2 :

Noir

Noir est bien meilleure que yapf . Il est plus intelligent et s'adapte à la plupart des cas de formatage complexes.

58voto

unutbu Points 222216

Edit : Aujourd'hui, je recommanderais autopep8 car il permet non seulement de corriger les problèmes d'indentation, mais aussi (à votre discrétion) de rendre le code conforme à de nombreuses autres directives du PEP8.


Utilisation reindent.py . Il devrait être fourni avec la distribution standard de Python, bien que sur Ubuntu vous deviez installer l'extension python2.6-examples l'emballage.

Vous pouvez également le trouver sur le site web .

Ce script tente de convertir n'importe quel script python pour qu'il soit conforme à la norme 4-space.

23voto

nbedou Points 410

Utilisation noir . Il n'a délibérément qu'une seule option (longueur de ligne) pour assurer la cohérence entre plusieurs projets. Il met en œuvre le PEP8.

8voto

mrk Points 2126

Une solution hors ligne a été trouvée avec PyCharm

Dans PyCharm, faites :

1. Sélectionnez tous les codes :

[ctrl]+[A]

2. Formater tout le code

[ctrl]+[alt]+[L]

2voto

Chris Points 719

Certains éditeurs disposent d'une fonction de formatage automatique qui effectue cette opération pour vous. Eclipse en est un exemple (bien qu'il faille probablement installer un plug-in python).

Avez-vous vérifié que l'éditeur que vous utilisez dispose d'une telle fonctionnalité ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X