Обязательно ли file.read () читать весь файл? - PullRequest
0 голосов
/ 20 октября 2018

Документы для file.read() говорят:

    Notice that when in non-blocking mode, less data than what was requested
    may be returned, even if no size parameter was given.

Означает ли это, что file.read() не гарантирует всегда возвращать все содержимое текстового файла, даже еслиэто скорее всего будет?Если да, то как правильно читать весь текстовый файл?

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Для «файлов», которые не являются обычными файлами, если у вас специально включен режим, в котором file.read() не пытается читать все, тогда file.read() может не читать все.

Документы указывают неблокирующий режим.Неблокирующий режим - это режим, который можно установить для файлового дескриптора в Unix, который действует только для «файлов», представляющих сокеты, каналы или другие устройства связи.В неблокирующем режиме, если вы попытаетесь прочитать больше данных, чем доступно в данный момент, файл даст вам то, что у него есть, вместо того, чтобы ждать, пока поступит достаточно данных.

0 голосов
/ 20 октября 2018

Неблокирующий режим - это не то, что вы обычно используете, если хотите получить весь файл, поскольку цель неблокирования - получить все доступные данные на ожидаемом вводе-выводе, обычно какой-то асинхронный поток, которыйможет или не может иметь ничего в этом.

Если это обычный текстовый файл, вы бы сделали что-то вроде этого:

with open("file.txt", "r") as infile:
    for line in infile:
         # something with a line of text here
         print(line)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...