import io
import pandas as pd


def cut_line(line: list[str]) -> list[str] | None:
    return line[:11]


sim_csv = io.StringIO(
    """99;Wg1H2ivHFZ;BDpXoeOhKH;VohJYsnCV8;BtTuebP0nT;fmBHwP4IFV;TOg9YJp1h6;ooVM44HkzP;DSZqukVH3K;hU3NZQBuri
99;gzxEh5ieKn;HCAIPudvKj;YqTUuDKH8O;5383zSS6E6;7Nr9Ckatuo;tqfCuCh52l;JFK0cfq9mz;yyQsQGC6t3;Xc44lIK4BQ
99;M1XNbLOYG9;px78EDlwlW;gHdirv59k9;VRJgi4m1H0;vSFkaCbImk;IM9V0UCLBa;vjnpAidejp;chcpZKpn48;UlAzuehJo5
99;diWUN45qqP;16HJxD3wdU;0WvoDOwKBx;XHO9L6qVWX;94DhLCUEA7;vdQ0wFx2u3;ZeF0SOPSsc;gJfA44ZSdQ;y7rHFlT77G
99;XsqKrPi1eO;AouPwLJ8cx;qERFA7G6oE;2xcUukUfKQ;TWXUS2GNWQ;wEJ5Xz6Bzf;8G5eEJDsEo;84Gm40s4nh;wvZixCSZ5X
99;ul1YLwdMLJ;9zE2XgrLmV;LVccZLrNGl;dE6PWSqbYB;3ltSdpDsTf;5QfymfMUM7;KkxipJLtLE;hoWZps7wS6;oCrfsk9CsV;
99;cQuqcgc9az;XyE3OYqhRw;HPELcHKBtt;PRR5qLpw1H;FZrXAWdRSZ;gJPL5W6C0Z;uFKnbdtpvS;4j1qBslPc0;imCvulSmhS
99;NzVF74lO9E;M28U9jb3oA;oAAlFQVUVt;6fkOztILHW;MZm20agksL;O0Yik187u6;ZgZMQMkjZc;yHMeT4HPEe;dppbphuT4b;;
99;bnNrfhGWri;HUxtRlvdKU;gyEjO0V1a3;xHh4SgJIfC;lawQnZfiAP;6FiB0bfmh2;shxKCWvV4Z;LmA6ZOidGv;rS8ZGBXQsx;;NF4cRa7bVJ
99;nuziDImo99;arsFldtXRS;DQpoylF0mE;qCh4S3O8hG;PdUexdXCwW;C9GUnzSXi0;ygMAcHTUCp;vH03yILzGm;1m3pSV7Eg0"""
)

names = [f"head{x:02}" for x in range(1, 11)]

with pd.read_csv(
    sim_csv,
    names=names,
    chunksize=2,
    on_bad_lines=cut_line,
    engine="python",
    delimiter=";",
) as reader:
    for chunk in reader:
        print(chunk)
