Какая лучшая альтернатива readline в Python?
Я хочу читать построчно похожий на файл объект.Этот файлоподобный объект содержит следующие методы:
- read (): считывает байтовую строку из объектоподобного объекта с текущим смещением.
- seek (): ищетсмещение внутри объектоподобного объекта.
- get_offset (): извлекает текущее смещение в объектоподобный объект.
- get_size (): извлекает размер объектоподобного объекта.
Я не могу прочитать полный текст для файла размером более 2 ГБ, поэтому я не могу сделать что-то подобное:
for line in file_object.read():
dostuff(line)
Я тестировал некоторые методы для чтения построчно: это хорошо с очень маленьким файлом, но с большим файлом это очень медленно.В любом случае они намного медленнее, чем File readline ().Вот пример, который я попробовал:
text = ''
while True:
char = file_object.read(1)
if char == '':
return ''
text += buffer + char
if char == '\n':
pos_newline = text.find('\n')
current_offset += pos_newline + 1
buffer = text[pos_newline + 1:]
line = text[:pos_newline]
return line
Я также пытался читать 10/50/100 символов одновременно.
Я могу использовать только стандартные библиотеки.
РЕДАКТИРОВАТЬ: "file-like" не повторяется.