Issue #29405: Make total calculation in _guess_delimiter more accurate.
diff --git a/Lib/csv.py b/Lib/csv.py
index 0349e0b..6a85876 100644
--- a/Lib/csv.py
+++ b/Lib/csv.py
@@ -307,7 +307,7 @@
         charFrequency = {}
         modes = {}
         delims = {}
-        start, end = 0, min(chunkLength, len(data))
+        start, end = 0, chunkLength
         while start < len(data):
             iteration += 1
             for line in data[start:end]:
@@ -336,7 +336,7 @@
 
             # build a list of possible delimiters
             modeList = modes.items()
-            total = float(chunkLength * iteration)
+            total = float(min(chunkLength * iteration, len(data)))
             # (rows of consistent data) / (number of rows) = 100%
             consistency = 1.0
             # minimum consistency threshold