Как стать автором
Обновить

Комментарии 6

Спасибо за статью — хороший такой стратегический план.
возник вопрос по поводу строк:
… Пока старый измученный сисадмин не обнаруживает в коде, обслуживающим диски виртуальных машин вот такую конструкцию: запуск программы ls в python и парсинг её вывода для получения списка файлов в директории. Ещё одна вещь, которую ему хочется развидеть.

А можно поподробнее? Почему эту вещь хочется развидеть? Я Питон знаю на базовом уровне, и может чего то не до понимаю. Хотелось бы уяснить.
Я думаю, потому что это избыточно использовать внешние утилиты когда есть внутренние возможности docs.python.org/2/library/os.html#os.listdir
А что будет если кто нить случай сломает бинарник ls? А если в path окажется «другой» ls? А сам по себе процесс парсинга — не самый быстрый из возможных.
Потому что у питона есть os.listdir() и куча других методов получить список файлов. Парсить вывод другой утилиты — это безумное индусское «кое-как слепили вроде работает».

Ну, представьте себе человека, который моет машины. И вот он решает помыть машину с помощью омывайки. Он идёт, нажимает рычаг «побрызгать на стекло», вода льётся. Человек мочит губку, трёт машину, подставляет губку под омывайку, трёт машину… И так пока машина не отмыта. Отмыл человек машину? Отмыл. Как вы его при этом назовёте, если он считает, что «так и надо»?
Это 1) избыточно 2) нестабильность 3) индокод 4) не работает не в последнюю очередь из-за того, что в именах файлов могут быть самые разные символы.
А, ну и ещё вспоминается вот это. Конечно, в том случае правильный способ — проверять exit code, а не вывод. Но истинно правильный способ — не делать такого вообще =)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий