contents = """[001]This is line 1.
[002][too long]This is line 2 but it's Tooooo
oooo long!
[003]This is line 3.
"""
lines = iter( contents.split("\n") )
def fix_file( lines ):
prev = ''
number = 1
for line in lines:
if not line.startswith( '[{0:03d}]'.format( number ) ):
prev += line
else:
yield prev
number = number + 1
prev = line
yield prev
for line in fix_file( lines ):
print line
Y29udGVudHMgPSAiIiJbMDAxXVRoaXMgaXMgbGluZSAxLgpbMDAyXVt0b28gbG9uZ11UaGlzIGlzIGxpbmUgMiBidXQgaXQncyBUb29vb28Kb29vbyBsb25nIQpbMDAzXVRoaXMgaXMgbGluZSAzLgoiIiIKCmxpbmVzID0gaXRlciggY29udGVudHMuc3BsaXQoIlxuIikgKQoKZGVmIGZpeF9maWxlKCBsaW5lcyApOgogICAgcHJldiA9ICcnCiAgICBudW1iZXIgPSAxCiAgICBmb3IgbGluZSBpbiBsaW5lczoKICAgICAgICBpZiBub3QgbGluZS5zdGFydHN3aXRoKCAnW3swOjAzZH1dJy5mb3JtYXQoIG51bWJlciApICk6CiAgICAgICAgICAgIHByZXYgKz0gbGluZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHlpZWxkIHByZXYKICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyICsgMQogICAgICAgICAgICBwcmV2ID0gbGluZQogICAgeWllbGQgcHJldgoKZm9yIGxpbmUgaW4gZml4X2ZpbGUoIGxpbmVzICk6CiAgICBwcmludCBsaW5lCg==