python – Split string into strings by length?
python – Split string into strings by length?
>>> x = qwertyui
>>> chunks, chunk_size = len(x), len(x)/4
>>> [ x[i:i+chunk_size] for i in range(0, chunks, chunk_size) ]
[qw, er, ty, ui]
I tried Alexanders answer but got this error in Python3:
TypeError: float object cannot be interpreted as an integer
This is because the division operator in Python3 is returning a float. This works for me:
>>> x = qwertyui
>>> chunks, chunk_size = len(x), len(x)//4
>>> [ x[i:i+chunk_size] for i in range(0, chunks, chunk_size) ]
[qw, er, ty, ui]
Notice the //
at the end of line 2, to ensure truncation to an integer.
python – Split string into strings by length?
- :param s: str; source string
- :param w: int; width to split on
Using the textwrap module:
import textwrap
def wrap(s, w):
return textwrap.fill(s, w)
:return str:
Inspired by Alexanders Answer
def wrap(s, w):
return [s[i:i + w] for i in range(0, len(s), w)]
- :return list:
import re
def wrap(s, w):
sre = re.compile(rf(.{{{w}}}))
return [x for x in re.split(sre, s) if x]
- :return list: