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:

PyDocs-textwrap

import textwrap
def wrap(s, w):
    return textwrap.fill(s, w)

:return str:

Inspired by Alexanders Answer

PyDocs-data structures

def wrap(s, w):
    return [s[i:i + w] for i in range(0, len(s), w)]
  • :return list:

Inspired by Erics answer

PyDocs-regex

import re
def wrap(s, w):    
    sre = re.compile(rf(.{{{w}}}))
    return [x for x in re.split(sre, s) if x]
  • :return list:

Complete Code Examples/Alternative Methods

Leave a Reply

Your email address will not be published. Required fields are marked *