Насколько я понимаю процессы, чтение файла идет через буфер.
В этом состоянии mon_fichier.read(1024)
извлекает не 1024 байта непосредственно из файла, а из буфера, пока этот файл не будет исчерпан, а затем буфер будет снова заполнен новым реальным чтением, скажем,, 4096 или 8192 или 16384 или ... байтов, я не знаю точно (думаю, что это степень 2, но даже не уверен)
Тогда, если вы действительно хотите обрабатывать блоки байтов, ядумаю, что код филнекста предпочтительнее.Но readline(1000)
необходимо заменить на read(1000)
, если вы хотите получить ровно 1000 байтов;readline(1000)
возвращает строку и не более, даже если длина строки составляет 4 символа.
Возможно, вы действительно хотите обработать файл блоками, но мне это кажется необычным.Чаще всего файл обрабатывается по строкам, и в этом случае правильным является код Хью Ботвелла.