Добавлять в строку пробел через определенное кол-во символов

Допустим у нас есть строка:

"ааааааааааааааааааааааааа"

В ней 24 символа, как сделать что бы если строка > 24 и у нее идут подряд 24 символа без пробела то после каждого 24 символа, ставить пробел и на выходе получалось:

text = "аааааааааааааааааааааааааaa" #len (26)
OUT: "ааааааааааааааааааааааааа aa"

Отмечу что текст может быть и не такой длины, а куда больше.


Ответы (4 шт):

Автор решения: gil9red

Можно попробовать через регулярку:

import re

text = "аааааааааааааааааааааааааaaааааааааааа ааааааааааааааaa"
new_text = re.sub('([^ ]{24})', r'\1 ', text)
new_text = new_text.replace('  ', ' ')
print(new_text)
# аааааааааааааааааааааааа аaaааааааааааа ааааааааааааааaa
→ Ссылка
Автор решения: Zhihar

если нужно много пробелов

text = "аааааааасссссссаааааааааааааааааbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaa"

res = ' '.join([text[i:i+24] for i in range(0, len(text), 24)]) if ' ' not in text[:24] and len(text) > 24 else text

print(res)

если нужен только 1 пробел

text = "аааааааааааааааааааааааааaa"

res = f'{text[:24]} {text[25:]}' if ' ' not in text[:24] and len(text) > 24 else text

print(res)
→ Ссылка
Автор решения: Danis
pprint = lambda x: " ".join(x[i: i + 24] for i in range(0, len(x), 24))

print(" ".join(pprint(el) for el in x.split()))
→ Ссылка
Автор решения: extrn
import textwrap

text = 'аааааааааааааааааааааааааaa   bbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
result = ' '.join(' '.join(textwrap.wrap(word, 24)) for word in text.split(' '))
print(result) # аааааааааааааааааааааааа аaa   bbbbbbbbbbbbbbbbbbbbbbbb bbbbb

С регулярками

import re

text = 'аааааааааааааааааааааааааaa   bbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
result = re.sub('(\S{24})(?=\S)', r'\1 ', text)
print(result) # аааааааааааааааааааааааа аaa   bbbbbbbbbbbbbbbbbbbbbbbb bbbbb
→ Ссылка