Después de tantos caracteres en una cadena, busque el espacio más cercano y colóquelo en una nueva línea

Estoy tratando de hacer que todo se vea ordenado en un archivo, pero tengo un problema. estoy pidiendo Details y si tiene más de 27 bytes, entonces necesito encontrar el espacio anterior más cercano y ponerlo en una nueva línea.

(usando python 3.2)

Estoy empezando con esto:

Details = input ("Details: ")
delen = len(Details)
if delen >27:
    #Code Here
else:
    pass

es posible? Si es así, ¿podrías darme una mano, por favor?

¡Salud

preguntado el 09 de marzo de 12 a las 14:03

2 Respuestas

str.rfind es su amigo.

Details = input ("Details: ")
if len(Details) > 27:
    nearest_space = Details.rfind(' ', 0, 27)
    first, second = Details[:nearest_space], Details[nearest_space:]
else:
    first, second = Details, None

Tenga en cuenta que rfind generará una excepción si no se encuentra ningún espacio en Details.

respondido 10 mar '12, 19:03

Eso parece funcionar muy bien, gracias. El único problema es que la cadena de detalles a veces puede tener hasta 100 caracteres, por lo que deberá dividirse en más de los dos. ¿Hay alguna forma de hacer esto, por favor? - user1244772

No soy un experto en Python. Probablemente hay algunas formas sofisticadas de hacer esto. Lo mantendría simple y haría:

Detail = input ("Details: ")
line_length = 27
delen = len(Detail)
pos = 0
while pos < delen:
    print Detail[pos:pos+line_length]
    pos += line_length

respondido 09 mar '12, 14:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.