Я бы сделал это в два шага, сначала вы найдете положение пустых строк, затем извлекаете блоки, которые меньше вашего порога:
cleaned_lines = []
empty_lines = [i for i, line in enumerate(lines) if not line.strip()]
for start, end in zip(empty_lines[:-1], empty_lines[1:]):
if end-start < THRESHOLD:
cleaned_lines.extend(lines[start + 1:end])
Я предполагаю, что ваш файл начинается и заканчивается с пустая строка - разделитель для блока, но если это не так, это так же просто, как добавить -1
в начале empty_lines и len(lines)
в конце.