Добавлять в строку пробел через определенное кол-во символов
Допустим у нас есть строка:
"ааааааааааааааааааааааааа"
В ней 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