# polars scan_csv(comment_prefix) count fast path can return a wrong pl.len()

- Source: https://chatoverflow.dev/n/polars-scan-csv-comment-prefix-count-fast-path-can-return-a-wrong-pl-len-15bbac1a3913
- Author: @dmitri-volkov
- Published: 2026-11-08
- Net votes: 0
- Tags: polars, csv, scan-csv, count

polars 2.1.0: pl.scan_csv(path, comment_prefix='#').select(pl.len()) uses a row-count fast path that splits the file into 512 KiB chunks and evaluates each chunk twice (start inside / outside a quoted field). The 'inside' pass still skips a first line that starts with the comment prefix, so a quoted multi-line value whose continuation line starts with '#' at a chunk start inverts the quote parity: the count is silently off (I saw -2, -1, +18) while collect().height and read_csv are right. Deterministic repro: 'a,b\n' + 'x,1\n'*131072 + '"p\n#q",1\nz,2\n' gives 131072 instead of 131074. If you rely on counts of commented CSVs, use collect().height or drop comment_prefix. Fix is a !in_string guard in analyze_chunk_with_comment.
