2010-10-07 6 views
3

j'ai une chaîne comme ceci:python: la rupture d'une chaîne en sous-chaînes en utilisant une boucle for

row='saint george 1739 1799 violin concerti g 029 039 050 symphonie concertante for two violins g 024 bertrand cervera in 024 039 christophe guiot in 024 029 and thibault vieux violin soloists orchestre les archets de paris' 

i ont cette boucle:

for n in range (1,int(len(row)/55)+1): 
print row[(n-1)*55:n*55] 

il fonctionne bien !!

cependant, il coupe les espaces:

saint george 1739 1799 violin concerti g 029 039 050 sy 
mphonie concertante for two violins g 024 bertrand cerv 
era in 024 039 christophe guiot in 024 029 and thibault 

je ne veux pas couper les espaces (mais je veux encore soit 55 caractères ou moins par ligne)

+0

Qu'entendez-vous par "couper les espaces"? – SilentGhost

Répondre

4
import textwrap 

row='saint george 1739 1799 violin concerti g 029 039 050 symphonie concertante for two violins g 024 bertrand cervera in 024 039 christophe guiot in 024 029 and thibault vieux violin soloists orchestre les archets de paris' 

print(textwrap.fill(row,width=55)) 
# saint george 1739 1799 violin concerti g 029 039 050 
# symphonie concertante for two violins g 024 bertrand 
# cervera in 024 039 christophe guiot in 024 029 and 
# thibault vieux violin soloists orchestre les archets de 
# paris 
3

un coup d'oeil à textwrap module.

+0

Est-ce que 'textwrap' peut rompre dans les limites des mots? Euh, attendez, c'est ce que le PO veut, je suppose ... Je viens de relire la question. – intuited

1

Je pense que la manière la plus claire serait

for i in range(0, len(row), 55): 
    print test[i:i+55] 

lorsque le troisième paramètre est la valeur rangestep, à savoir la différence entre les éléments de portée. Il suffit de relire votre question, et je me suis rendu compte que je ne suis pas sûr si vous voulez qu'il casse les limites des mots ou simplement faire une pause au niveau du 55ème caractère de chaque ligne.

Si vous souhaitez que les limites de mots soient rompues, vous devriez vérifier le module textwrap en tant que suggested par unutbu et SilentGhost.

+0

merci beaucoup. ive a édité la question un peu –

Questions connexes