Thank you for that suggestion, but this approach would use the CSV parser to read ALL the rows before the desired one every time, that means for N rows there would be N*N/2 full parses of the line, so it would be extremely slow.
I had been thinking that maybe it would be possible to directly skip to the correct position inside the file using seek, but this is very difficult to get right if the file can be in any encoding or even just for UTF8, I think.