Une bonne façon de faire de longues chaînes d'une pellicule de retour à la ligne?
Dans mon projet, j'ai un tas de chaînes qui sont lues à partir d'un fichier. La plupart d'entre eux, lors de l'impression dans la console de commande, dépasser 80 caractères et l'enrouler autour de, à la recherche laid.
Je veux être en mesure d'avoir Python lire la chaîne de caractères, puis de tester si elle est de plus de 75 caractères. Si elle l'est, puis diviser la chaîne en plusieurs chaînes, puis imprimez-les l'un après l'autre sur une nouvelle ligne.
Je veux aussi qu'il soit intelligent, ne pas couper les mots. c'est à dire "The quick brown <newline> fox..."
au lieu de "the quick bro<newline>wn fox..."
.
J'ai essayé de modifier un code similaire qui tronque la chaîne après un réglage de la longueur, mais juste des ordures de la chaîne, au lieu de le mettre dans une nouvelle ligne.
Quelles sont les méthodes que je pourrais utiliser pour accomplir cette?
- d'habillage de texte est excellent pour cela, mais il dépend du format de votre fichier! Le fichier est un bouquet de chaînes, ou sont-ils sur des lignes séparées, parce que sur des lignes séparées, lorsque vous utilisez
textwrap
il sera très probablement obtenir des déglingués - c'est un fichier texte avec chaque chaîne de caractères séparés par un ensemble de caractères (un tuyau, |). d'habillage de texte sonne comme il pourrait fonctionner, alors!
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
d'habillage de texte
module:aider sur
d'habillage de texte.remplissez
:Utilisation
regex
si vous ne voulez pas fusionner une ligne à une autre ligne:de sortie:
regex
base de solution pour gérer ce cas.r'(?:\S{41,}|.{1,40})(?:\s+|$)'
regex à la place.C'est ce que le d'habillage de texte module. Essayez
textwrap.fill(some_string, width=75)
.Ceci est similaire à Ashwini de la réponse, mais ne pas utiliser
re
:Sortie lorsque l'entrée est à votre question:
textwrap
est beaucoup mieux et plus facile à gérer méthode de l'habillage du texte. cela dit, il serait bon pour les gens qui veulent plus de flexibilité dans leur retour à la ligne, ou si vous voulez comprendre la logique derrière textwrapping à développer leurs propres modules!