Что определяет, как "максимум байты считываются и возвращаются" с помощью Python read()?
В документации по вводу / выводу Python в разделе "Чтение и запись файлов" говорится:
https://docs.python.org/3.5/tutorial/inputoutput.html
"Когда размер опущен или отрицателен, все содержимое файла будет прочитано и возвращено; это ваша проблема, если файл будет в два раза больше памяти вашей машины. В противном случае, самое большее размер байтов читается и возвращается".
Давайте возьмем следующий код:
size = 1000
with open('file.txt', 'r') as f:
while True:
read_data = f.read(size)
if not read_data:
break
print(read_data) # outputs data in sizes equal to at most 1000 bytes
Вот, size
самое большее 1000 байтов. Что определяет "максимум"?
Допустим, мы анализируем строки структурированных данных. Каждый ряд составляет 750 байтов. Будет читать "отрезать" следующий ряд или остановиться на \n
?
1 ответ
read
не является readline
или же readlines
, Он просто читает байты независимо от содержимого файла (кроме перевода строки в конце, так как ваш файл открыт как текст)
- Если в буфере нужно прочитать 1000 байтов, он возвращает 1000 байтов (или меньше, если файл имеет
\r\n
формат (Windows CR+LF) и читать как текст,\r
чары раздели) - Если осталось 700 байт, возвращается 700 байт (дайте или возьмите
\r
выпуск) - Если читать нечего, возвращается пустой буфер (
len(read_data)==0
).