Ответы пользователя по тегу Python
  • Определить что пришло на сервер - пакет или сегмент (udp/tcp)?

    vvpoloskin
    @vvpoloskin Куратор тега Компьютерные сети
    Инженер связи
    Не понятно, зачем сниффер. Программно и под tcp, и под udp открываются разные сокетов и переводятся в состояние LISTEN. Какой конкретно из них выбрать для нового соединения решает операционная система исходя из приходящих пакетов (сетевой стек сам анализирует пакеты). А если все-таки надо дать больше гибкости, есть iptables.
    Ответ написан
    Комментировать
  • Как программно управлять форвардингом пакетов на Python?

    vvpoloskin
    @vvpoloskin Куратор тега Компьютерные сети
    Инженер связи
    Форвардинг пакетов делается на уровне ядра, питоном там и не пахнет. Надо пилитькакой-нибудь кастомный модуль к netfilter. На питоне можете сделать какое-нибудь подобие прокси.
    Ответ написан
    Комментировать
  • Нужен ли python для системных администраторов?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Когда я и коллеги использовали python вместо баш?
    Когда потребовалось написать бекапилку конфигов на 8k сетевых устройст по snmp.
    Когда надо было набросать простой веб-интерфейс для дежурной смены для примитивного up/down и смену description на этих устройствах.
    Когда надо было проинтегрировать nagios-мониторилку с внешей сторонней базой данных.
    Когда на 600 виртуалок необходимо было поставить разные софтины, перечень и версии которых хранились во внешнем xml-файле
    Когда с увесистой пачки серверов понадобилось провести инвентаризацию типа sfp-модулей

    К чему я это? Если вам хватает bash, радуйтесь и используйте его. Когда будет надо, вы сами придете к python.

    На чистом баше вы замучаетесь делать веб-интерфейс к чему-либо, организовывать взаимодействие с внешними системами/программами, отличными от чистого linux (web, snmp, sql, email, ftp не разовое обращение), обрабатывать вводные данные к системе в форматах сложнее csv (html, xml, json), обрабатывать файлы в нестандартных кодировках, использовать нетекстовые переменные в скриптах (арифметика, дроби, списки, файлы). Боль начнется даже просто тогда, когда появятся файлы с названиями с нестандартными символами (?$!*\+alt-символы), а еще и в левой кодировке (привет mount ftp/samba/sshfs/ntfs и даже вложения к письмам). А еще больнее станет, когда размер своих скриптов превысит хотя бы 500 строк.

    И уже как бонус идет то, что python есть из коробки в deb/rhel дистрибутивах, многие системные утилиты написаны уже на нем. Плагин к apt/yum проще всего сделать на python, даже можно не парясь писать стартап скрипты к сервисам.
    Ответ написан
    Комментировать
  • Как обрабатывать исключение в цикле?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    try:
       for i, j in zip(number, number1):
          print(i/j)
    except:
          print(error)
          continue

    На самом деле try/catch - всего лишь более красивая конструкция goto. Кстати говоря, еще не понятно, лучше ли это goto на самом деле.
    Ответ написан
    Комментировать
  • За год реально python выучить до уровня мидл?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Нет. Мидл - 3+ года работы в организации и команде.
    Ответ написан
    Комментировать
  • NameError: name 'gc' is not defined?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Не знаю, что такое gspread, но gc, правда, "is not defined". Может надо было from gspread import gc? Или там import gc (хотя это явно не поможет).
    Ответ написан
    Комментировать
  • Как передать Python проект?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Как один из простых вариантов сделать архив virtualenv
    Ответ написан
    Комментировать
  • Какие книги почитать системному администраторy для изучения Python?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Из личного опыта - когда я работал сетевым алмином и у меня в эксплуатации было 8k разношерстного активного сетевого оборудования, питон я активно использовал для опроса по snmp разных девайсов, бота для телнета. Ещё для смены делал тупой веб интерфейс для того, чтобы на свичах можно было включить/выключить порт, подписать дескрипшен. Пытался делать на нем генератор конфигурации, но bash+sed для этого подошли лучше.

    Надо плясать от задачи, а не от языка. По моему скромному мнению питон избыточен для повседневного системного администрирования, возможностей баша хватает с головой. Он удобен для больших расширяемых програмулин, но часто ли надо писать самому такой софт админу? Также он хорош для сетевого программирования, но опять же, часто ли надо прогать сокеты? Полезен в распаршивании всяких html/xml.

    Однострочники писать на нем неудобно, а в бытовом админском скриптовании именно они составляют львиную часть работы.
    Ответ написан
    Комментировать
  • Подойдет ли для фриланса Python по Марку Лутцу?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Сколько будут платить после прочтения трёх учебников по английскому?
    Ответ написан
    1 комментарий
  • Как с помощью Python сделать telnet на Cisco?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    1) Считать все с вывода после ввода пароля.
    2) вбить \n после show ver
    Ответ написан
    Комментировать
  • На сколько Python подходит для обработки больших данных?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    10GB не такие уж большие данные... вот было бы 10TB, можно было бы задуматься.
    Ответ написан
    2 комментария
  • Фича Python'а в С++?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Нет, данная конструкция противоречит синтаксису языка. Только через функцию или метод.
    Ответ написан
    Комментировать
  • Python, web. Есть ли что-то между CGI и Flask?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Если интересно, вот сравнение микро-фреймворков на python.
    Ответ написан
    Комментировать
  • Чем плох веб-сервер Python на Windows?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Давайте посмотрим. Хитрое (думаю, вы понимаете что вам надо и это сложнее объединения ячеек и применения к ним различных стилей форматирования) преобразование xls-файлов задача довольно трудоемкая. Запустив ее чисто на Linux вы тоже можете упереться в производительность, особенно, если дело дойдет до интерпретации формул, работой с бинарными архивированными данными или эмуляцией VBA.

    С другой стороны, естественно, нужно быть к этому готовым, весь функционал на Linux вы не получите, с некоторой долей уверенности можно сказать, что получите грабли в самых неожиданных местах, например, при работе с кодировками или подготовке документа на печать.

    Поэтому с моей точки зрения правильнее делать на разных системах, если хотите сделать наверняка.

    На счет вашего страха перед многопоточностью - вам не надо это реализовывать. Достаточно запустить на windows-машине IIS и обращаться к нему только за этим файлом, больше не зачем. Или привлечь для этих же целей обычные шареные папки, в которых будет исполняемый файл. То есть переложить многопоточность уже на существующие сервисы и службы.
    Ответ написан
  • Существуют ли НЕ видеоуроки по различным ЯП?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Во народ пошел. Тут люди программировать по Кернигану и Ричи учились, из официальных руководств не вылазили, когда еще инета не было. А теперь новички просят дать им обучающие игры, да еще и в удобном формате и бесплатно.
    Что дальше? Программировать будут учиться по мультикам и журналам с наклейками?
    Ответ написан
    5 комментариев
  • Чем вы backup'те конфигурации L2 оборудования?

    vvpoloskin
    @vvpoloskin Куратор тега Сетевое администрирование
    Инженер связи
    6k разных свичей (длинки, циски, хуавеи, эдж-коры...), бекаплю питоньим скриптом через SNMP. Список устройств берется из зоны DNS (полная выгрузка AXFR). Сначала определяю производителя, модель, версию прошивки, затем запускаю процедуру аплода конфига. Все красиво сделано с плагинами, наследованием, переопределением. Могу поделиться кодом.
    Ответ написан
    5 комментариев
  • Как реализовать алгоритм построения строки из списка упорядоченных целых чисел?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Хотите проще - держите. Логика такая: надо в список туда, где разница между двумя соседними числами > 1 вставить символ "-". А затем этот список преобразовать в строку.

    def getstr(l):
        nl = [l[0],]
        for i in range(1, len(l)):
            if l[i] - nl[-1] > 1 and nl[-2] != '-':
                nl.append('-')
            nl.append(l[i])
        return nl
    
    l = [1,2,3,4,7,9,11,13,14,15,16,17,19]
    nl = getstr(l)
    print(','.join(nl).replace(',-,', '-'))


    Могу еще проще, но тогда вы код совсем не поймете
    Ответ написан
  • Где взять информацию о текущей http версии в python?

    vvpoloskin
    @vvpoloskin Куратор тега Компьютерные сети
    Инженер связи
    Это вопрос на 1 апреля?

    Если нет, тогда попробуйте подключиться к своему приложению через Telnet и используйте ЛЮБУЮ версию HTTP.
    Ответ написан
  • Можно ли написать сайт только на Python?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    У товарища какое-то непонимание в том, что такое "сайт". То, что отображается в браузере в простейшем виде - текст в определенном форматировании. Python же просто "генерирует" этот текст. А веб сервер отдает его браузеру.

    Соответственно, на python можно сколь угодно генерировать текст, настроив веб-сервер вы увидите этот текст в браузере. Но чтобы он был нормально форматирован, все же придется применять стили.
    Ответ написан
    Комментировать
  • Python: как узнать, есть ли у вызываемой функции декоратор?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Теоретически можно через стек вызовов. Или через видоизмененный functools.wraps.
    Ответ написан
    Комментировать