Чтение и сравнение набора байтов: Python - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть два текстовых файла, каждый из которых содержит более 150000 строк данных.Мне нужно сократить их до целого ряда строк.

Позвольте мне объяснить:

Строка, которая начинается с "BO_" , должна быть первой строкой, а последняя будет той, которая не начинается с "BO _" .Как сравнить набор символов, так как Python читает файл каждый байт за раз?

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

Я попробовал следующий код:

def character(f):
    c = f.read(1)
    while c:
         yield c
         c = f.read(1)

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

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете использовать f.readline() для чтения строки (вплоть до новой строки b символа \ n). Читать дальше здесь

...