Программирование Python

Статья mypy: основы и немного больше

  • 5 396
  • 0
Статический анализатор типов mypy предотвращает значительное количество возможных ошибок в коде на языке программирования Python. Главная его цель – предоставить возможность писать более надежный и легко поддерживаемый код.

mypy.png

Python:
def greet(name: str) -> str:
    return f"Hello, {name}!"

def add_numbers(x: int, y: int) -> int:
    return x + y

def get_length(s: str) -> int:
    return len(s)

def is_even(n: int) -> bool:
    return n % 2 == 0

Выше приведены простые примеры аннотаций типов функций. После имени аргумента через двоеточие указывается тип аргумента, а через стрелку после аргументов функции указывается тип возвращаемого значения.
Чтобы установить и протестировать mypy требуется сделать следующее:
  1. Устанавливаем mypy командой pip install mypy;
  2. Сохраняем код в файл, для примера, в mpy.py;
  3. Выполняем команду mypy...

Статья Способы получения информации об ОС и железе с помощью Python. Часть 04: ОС Windows и сторонние модули

  • 3 578
  • 0
Что ж, если в трех предыдущих статьях (раз, два, три) мы узнавали информацию об операционной системе с помощью python и библиотек, которые не требуют установки, это: winreg – работа с реестром Windows; subprocess.check_out – запускали утилиту командной строки wmic и парсили ее вывод; wmi – работа с инструментарием управления Windows, то сегодня давайте попробуем использовать сторонние библиотеки для этих целей. Также, как и в предыдущих статьях сравним скорость работы. И, думаю, что подведем некий итог по сбору информации об операционной системе и железе компьютера. Попробуем скомбинировать способы получения информации. Возьмем из каждого способа тот параметр, который недоступен в других и объединим это все в один. После чего, посмотрим на скорость работы объединенного способа.

000.jpg

Что потребуется?

Так как данный скрипт подразумевает в своей работе установку сторонних библиотек, то потребуется установить их довольно много. Ну как много, давайте их все перечислим: pywin32 – с помощью данной библиотеки мы будем получать информацию о материнской плате; py-cpuinfo – эта библиотека позволяет получить подробную информацию о процессоре; GPUtil – библиотека, которая предназначена для получения информации о видеокарте; psutil – это довольно известная библиотека, с помощью которой можно получить множество различной информации о системе, в нашем же случае мы будем получать информацию о HDD/SSD, а также CD/DVD-ROM и сетевых интерфейсах; python-docx – с помощью данной библиотеки мы будем сохранять отчет в документ Microsoft Word.

Статья Отключение от интернета машин в локальной сети с помощью Python

  • 3 992
  • 1
Какое-то время назад я экспериментировал с ARP-спуфингом и обнаружил побочный эффект, который, в общем-то не является секретным, а вполне закономерным, если забыть включить на атакующей машине ip-форвардинг. На атакуемой машине пропадает сеть. Тогда я на это не обратил внимания, но совсем недавно наткнулся на любопытный скрипт, который отключает интернет в локальной сети именно с помощью ARP-спуфинга. Тогда я и вспомнил, что наблюдал это ранее. Давайте попробуем реализовать простой скрипт для воспроизведения этого эффекта с помощью Python.

net.jpg

Дисклеймер: Все данные, предоставленные в данной статье, взяты из открытых источников, не призывают к действию и являются только лишь данными для ознакомления, и изучения механизмов используемых технологий.

В данном случае мы сделаем лишь заготовку, которую нужно будет, при необходимости...

Статья Способы получения информации об ОС и железе с помощью Python. Часть 03: ОС Windows и WMI

  • 3 843
  • 0
Эта статья является продолжением двух предыдущих статей: раз, два о способах получения информации об операционной системе и железе компьютера с помощью стандартных модулей Python. И если в первых двух статьях были рассмотрены такие модули как: winreg, для получения информации из реестра; subprocess.check_out для получения вывода консольной утилиты wmic, то здесь мы рассмотрим еще один модуль из стандартных библиотек – wmi.

000.jpg

WMI – это инструментарий управления Windows. Сам по себе инструментарий, это расширенная и адаптированная под Windows технология WBEM. В основе данной технологии лежит идея создания...

Статья Способы получения информации об ОС и железе с помощью Python. Часть 02: ОС Windows и subprocess. Консольная утилита wmic

  • 3 264
  • 10
Эта статья является второй частью, из небольшого цикла статей по получению информации об операционной системе и железе. И если в первой части мы получали информацию из реестра ОС Windows с помощью библиотеки winreg, то в этой статье посмотрим, как можно использовать библиотеку subprocess, в частности метод check_output. Именно с помощью данной библиотеки мы будем выполнять команды в операционной системе и с помощью утилиты wmic получать необходимые данные.

000.png

WMIC, это программа командной строки, которая представляет более удобный интерфейс для инструментария управления Windows, то есть WMI. Она основана на псевдонимах, которые упрощают использование и чтение WMI. Помимо этого, с помощью параметра CLASS можно использовать явный ввод класса схемы WMI без использования...

Статья Способы получения информации об ОС и железе с помощью Python. Часть 01: ОС Windows и модуль winreg

  • 4 961
  • 0
Определение оборудования компьютера, на котором вы работаете, сведения об операционной системе и прочие параметры порою бывают очень нужны. Цели, в которых их можно использовать – самые разнообразные. От простого любопытства, до определения версии чипсета, чтобы подобрать под него необходимое железо для апгрейда. И мы все, за годы использования привыкли пользоваться программами сторонних производителей. Это и не хорошо, и не плохо. Каждый инструмент выполняет свою задачу в нужное время и в нужном месте. Но, для большего понимания того, как и откуда берется информация, в те же самые программы, можно написать свое собственное, небольшое консольное приложение на Python. Давайте рассмотрим несколько вариантов того, как и с помощью каких модулей это можно сделать. А также попробуем оценить быстродействие получившихся скриптов, количество выводимой информации.

000.jpg

А начнем мы написание наших скриптов с попытки получения...

Статья Объединение документов формата Microsoft Word в один с помощью Python

  • 3 954
  • 0
Не могу сказать за всех, а у меня иногда возникает необходимость в объединении нескольких файлов формата «.docx» в один документ. И зачастую это приходиться делать вручную, что занимает довольно много времени, так как большая его часть уходит на открытие документа, копирование и вставку в объединенный документ. Чтобы ускорить данный процесс я попробовал написать небольшой скрипт на Python, который делает все указанные операции в автоматическом режиме.

000.jpg

Первым делом, при решении данной задачи приходит на ум использование библиотеки python-docx. И да, она может помочь решить задачу частично. То есть, если ваши потребности невелики, а документ не содержит картинок и таблиц, то можно воспользоваться решением на основе данной библиотеки. Конечно же, нельзя сказать, что с ее помощью нельзя перенести документ полностью. Однако, здесь потребуется написать отдельный модуль для анализа содержимого документа, который будет определять, какой тип блоков присутствует и на основе этого формировать новый документ. Этого мы делать не будем, так как есть несколько более простое решение. Но, для полноты картины давайте рассмотрим, как можно объединить текст в нескольких документах с помощью python-docx.

Статья Определение технологий используемых сайтом с помощью Wappalyzer и Python

  • 2 751
  • 2
Иногда, при исследовании сайта необходимо знать, какие технологии использовались при его разработке, а также используются в данный момент. Инструментов, которые предоставляют такой функционал не так уж и много. Одним из популярных решений является Wappalyzer. Посмотрим, как можно использовать данный инструмент при определении технологий с помощью Python.

000.jpeg

Конечно же, если вы установите Wappalyzer в браузер, в качестве расширения, точность определения технологий, а также количество сайтов, на которых можно их определить, будет значительно выше. Так как при анализе данных иногда перехватываются запросы, если не представляется возможным определить технологии иным способом. Тем не менее, если вам нужно проверить большое количество сайтов, использование автоматизации существенно облегчит данную задачу. Давайте попробуем написать небольшой скрипт, который использует Wappalyzer при определении технологий...

Статья Работа с форматом CSV с помощью Python

  • 7 426
  • 1
О формате CSV, а также о том, как работать с ним с помощью Python существует большое множество статей. И, казалось бы, что такого сложного в том, чтобы прочитать или записать данный формат. Однако, вспоминая себя и то время, когда я только начал изучать Python я хорошо помню некоторое недопонимание этого вопроса. Может быть, поэтому я решил написать эту небольшую статью. Конечно же, рассмотреть все тонкости и нюансы думаю, что не получиться, но вот базовые операции с данным типом файлов я постараюсь описать.

000.jpg

Давайте начнем с определения формата. Что же такое CSV-файл? CSV – это аббревиатура. В более развернутом варианте звучит это так - Comma-Separated Values, то есть, значения, разделенные запятыми. Данный формат был разработан для представления табличных данных. Таким образом, каждая строка таблицы соответствует строке текста. В такой строке содержится одно или несколько полей, которые разделены запятыми.

Данный формат...

Статья Перехват базовых запросов с помощью Selenium Wire и Python

  • 10 252
  • 30
В данной статье я хотел бы вернуться к способам перехвата запросов и ответов API в браузере. С помощью Selenium в связке с Python можно парсить достаточно сложные сайты, которые требуют выполнения различного рода скриптов. Но иногда этого бывает недостаточно и требуется получить данные, которые возвращает API на внешний интерфейс. В этом случае можно воспользоваться локальным прокси-сервером, как в этой статье (Статья - Перехват запросов с веб-страницы с помощью selenium и browsermobproxy в Python). Или, для перехвата запросов и ответов, можно воспользоваться Wireshark. Но это уже будет внешнее приложение. Давайте разберемся, как с помощью дополнительной библиотеки и Python перехватывать запросы и ответы без использования внешнего прокси.

000.png


Давайте поставим некоторую задачу...