um einen string innerhalb eines bestimmten Bereiches auszugeben, möchte ich diesen string teilen. 'first' gibt die Länge der ersten, 'next_' die Länge der restlichen Zeilen an. 'lines' regelt die maximale Anzahl der insgesamt verfügbaren Zeilen.
Ein eventueller Rest von 'string_' wird ignoriert.
Ich habe das folgendermaßen gemacht, würde mich aber nicht wundern, wenn es schon eine bereits 'fertige' Lösung gäbe. Konnte aber in den Standardmodulen nix finden:
Code: Alles auswählen
def _split(string_, first, next_, lines):
yield string_[:first]
lines -= 1
start = first
stop = first + next_
string_length = len(string_)
while lines and not start >= string_length:
yield string_[start:stop]
start += next_
stop += next_
lines -= 1
Code: Alles auswählen
In [124]: string_ = '123456789X123456789x1234V'
In [125]: list(_split(string_, 3, 5, 4))
Out[125]: ['123', '45678', '9X123', '45678']
In [126]: list(_split(string_, 2, 4, 10))
Out[126]: ['12', '3456', '789X', '1234', '5678', '9x12', '34V']
In [127]: list(_split(string_, 5, 3, 10))
Out[127]: ['12345', '678', '9X1', '234', '567', '89x', '123', '4V']
mutetella