Comment mettre en retrait le contenu d'une chaîne multiligne?
Je suis en utilisant le python cog module pour générer du C++ code réutilisable, et il fonctionne très bien jusqu'à présent, mais mon seul souci, c'est que le code résultant, ce qui est laid en soi, est encore aggravée par le fait qu'il n'est pas en retrait. Je suis trop paresseux pour obtenir le retrait à droite dans la chaîne en fonction de génération, donc je me demandais si il y a un Python util fonction de retrait du contenu d'un multi-ligne de chaîne?
source d'informationauteur lurscher
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas rediriger la sortie via une ligne de commande code de formatage telles que les astyle?
Vous pouvez mettre en retrait les lignes dans une chaîne de caractères par juste rembourrage chacun avec bon nombre de pavé de caractères. Ceci peut être facilement fait en utilisant le
d'habillage de texte.tiret()
fonction qui a été ajoutée au module en Python 3.3. Sinon, vous pouvez utiliser le code ci-dessous qui fonctionne également dans les précédentes versions de Python.Résultat:
Si vous avez l'un des principaux newline:
Heredocs peut contenir un littéral de saut de ligne, ou vous pouvez ajouter un.
Ici, est-il indiqué dans pprint dump:
Maladroit, mais fonctionne
Si vous ne disposez pas d'un leader de la nouvelle ligne:
Facultatif, garniture premier retour à la ligne et les espaces/tabulations
Il y a un script situé dans le python
Tools/Scripts/
répertoire qui est principalement pour la fixation de la mise en retrait de l'ensemble des fichiers python. Cependant, vous pouvez facilement modifier le script un peu et de les appliquer à des sections ou des lignes de code, ou d'autres types de fichiers.Le script est également disponible en ligne, ici:
http://svn.python.org/projects/python/trunk/Tools/scripts/reindent.py
Ou, comme un module ici:
http://pypi.python.org/pypi/Reindent/0.1.0