December 22nd, 2019

404

Интересная/дурацкая задача на питоне

Задача: написать этот код идиоматически.

Суть проблемы: формат такой: строка, начинающаяся не с пробела - начало записи. Дальше сколько-то строк, начинающихся с пробелов, относящихся к этой же самой записи.

Т.е.
foo foobar
   bar
   bar
next foobar
   bar
etc

Задача - распарсить на записи, так, чтобы каждая "запись" была массивом "своих" строк (т.е. строка без начального пробела и относящиеся к ней строки с пробелом).

Я написал, но получилось подозрительно близко к C. Красивые варианты приветствуются. (в моём коде 'interface' - это запись).

        lines = raw_output.split('\n')
        current_interface = []
        for line in lines:
            if not line.strip():
                continue
            if not line.startswith(' '):
                if current_interface:
                    yield current_interface
                current_interface = []
            current_interface.append(line)
        if current_interface:
            yield current_interface