amarao (amarao_san) wrote,
amarao
amarao_san

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

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

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

Т.е.
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
Tags: python
Subscribe

  • (рабочее)

    И всё-таки насколько системы управления конфигурациями осложняют жизнь и отладку - словами не описать. Вместо "пошёл и сделал" - сложный ритуал,…

  • (рабочее)

    Всё-таки построение мониторинга в любой крупной системе - это самая сложная и постепенная задача. Для продукта обычно есть некий минимальный объём…

  • Иногда я просто обожаю свою работу

    Срабатывание мониторинга на на oom killer зависело от числа запущенных процессов. Если их было слишком много - мониторинг не срабатывал. Поиск…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 32 comments

  • (рабочее)

    И всё-таки насколько системы управления конфигурациями осложняют жизнь и отладку - словами не описать. Вместо "пошёл и сделал" - сложный ритуал,…

  • (рабочее)

    Всё-таки построение мониторинга в любой крупной системе - это самая сложная и постепенная задача. Для продукта обычно есть некий минимальный объём…

  • Иногда я просто обожаю свою работу

    Срабатывание мониторинга на на oom killer зависело от числа запущенных процессов. Если их было слишком много - мониторинг не срабатывал. Поиск…