Telegram Web Link
Использование внешних процессов в Python с помощью subprocess

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

Что такое subprocess?

subprocess - это модуль Python, который предоставляет множество возможностей для запуска новых процессов, подключения к существующим процессам, а также обмена данными между вашим кодом и внешними программами.

Пример использования subprocess:

import subprocess

# Простой пример: выполнение команды "ls" в командной строке
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE, text=True)

# Вывод результата выполнения команды
print(result.stdout)


В данном примере мы использовали subprocess.run для выполнения команды "ls -l". Параметр stdout=subprocess.PIPE указывает на перенаправление вывода команды в переменную result.stdout. Параметр text=True гарантирует, что вывод будет в текстовом формате.

Передача данных и получение результата:

import subprocess

# Передача данных в команду и получение результата
input_data = "Hello, subprocess!"
result = subprocess.run(['echo', input_data], stdout=subprocess.PIPE, text=True)

# Вывод результата выполнения команды
print(result.stdout)


В данном примере мы использовали команду echo для вывода переданных данных. subprocess.run позволяет передавать данные в команду через параметр input.

subprocess также предоставляет множество других функций для более сложных сценариев взаимодействия с процессами, таких как запуск процесса в фоновом режиме, обработка ошибок, а также потоковый вывод данных.

#python #subprocess
Логирование в Python используя Loguru

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

Что такое loguru?
loguru - это библиотека для логирования в Python, созданная с упором на простоту использования и выразительность. Она предоставляет удобный синтаксис для настройки логирования и поддерживает различные форматы вывода, а также обеспечивает автоматическую ротацию лог-файлов.

Преимущества loguru:
1. Простота использования: loguru предлагает чистый и интуитивно понятный синтаксис для логирования, что упрощает его внедрение в ваши проекты.

2. Гибкость: Вы можете легко настраивать формат вывода, выбирать уровни логирования и добавлять собственные обработчики.

3. Автоматическая ротация: Библиотека автоматически управляет ротацией лог-файлов, предотвращая переполнение дискового пространства.

4. Поддержка различных форматов вывода: loguru поддерживает вывод в различных форматах, включая JSON, CSV, и прочие.

#python #loguru #логирование
Как улучшить управление рисками и ускорить реакцию на кибер-инциденты? Ответ на этот вопрос нашли Норникель и поставщик решений в области информационной безопасности Security Vision.

Компании подписали соглашение о сотрудничестве на SOC-Форуме в Москве, а партнёрство направлено на совместную разработку и тестирование методов защиты от киберугроз.

В рамках сотрудничества компании планируют вместе участвовать в международных киберспортивных соревнованиях, а также разрабатывать образовательные программы для сотрудников информационной безопасности.
Управление зависимостями в Python с Poetry

Сегодня расскажем о мощном инструменте для эффективного управления зависимостями в ваших Python-проектах - Poetry. Poetry представляет собой интуитивно понятный инструмент, который упрощает создание, управление и публикацию пакетов, делая процесс разработки более прозрачным и удобным.

Poetry - это инструмент для управления зависимостями и управления проектами в Python. Он предоставляет удобный способ определения зависимостей, настройки окружения и управления проектом с использованием файла pyproject.toml.

Преимущества использования Poetry:

- Простота: Poetry предоставляет простой и интуитивно понятный способ управления зависимостями, позволяя сосредоточиться на коде, а не на конфигурации.

- Управление версиями: Poetry автоматически создает файлы requirements.txt и Pipfile.lock, обеспечивая точное управление версиями зависимостей.

- Встроенная документация: Интегрированная поддержка документации и команд для упрощения публикации пакетов.

- Интеграция с проектами: Poetry легко интегрируется в процессы разработки и может использоваться вместе с такими инструментами, как VSCode, PyCharm и другими.

Как использовать Poetry?

Для начала работы установите Poetry с помощью следующей команды:
pip install poetry
Инициализируйте новый проект:
poetry new your_project
Добавьте зависимости:
poetry add package_name
И Poetry автоматически обновит ваш файл pyproject.toml и управит зависимостями.

#python #poetry #pyprojecttoml
🌎Программист, мир огромен и разнообразен!

👉Узнайте больше о возможностях С на бесплатном вебинаре онлайн-курса «Программист С» — «Unicode в С»: регистрация

На вебинаре мы:
— подробнее познакомимся с интернациональным стандартом символов Unicode и низкоуровневым устройством его кодировок
— развеем несколько популярных мифов в области кодировок и посмотрим на инструменты языка C для работы с юникодом.

Занятие будет полезно всем программистам, практикующим написание кода на C и C++.

👉После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KbMw6
Управление операционной системой с помощью модуля os в Python

Сегодня давайте поговорим о инструменте для взаимодействия с операционной системой - модуле os. Этот модуль предоставляет широкий спектр функций, позволяющих выполнять операции с файлами, директориями, переменными окружения и многими другими аспектами операционной системы.

Что такое модуль os?

Модуль os в Python предоставляет множество функций для работы с операционной системой, делая их доступными для Python-разработчиков. Он позволяет выполнять различные операции, такие как чтение и запись файлов, управление процессами, работа с директориями и многое другое.

Преимущества использования модуля os:

- Кросс-платформенность: Модуль os предоставляет абстракцию для операций, специфичных для операционной системы, что обеспечивает кросс-платформенную совместимость.

- Работа с файлами и директориями: Вы можете легко выполнять операции чтения, записи, удаления файлов, а также управлять структурой директорий.

- Управление процессами: Модуль os позволяет вам взаимодействовать с процессами операционной системы, запускать новые процессы и многое другое.

- Переменные окружения: Вы можете управлять переменными окружения вашего приложения, что полезно при конфигурировании и настройке.

Как использовать модуль os?

Для начала работы с модулем os, вам необходимо просто импортировать его:
import os

Затем вы можете использовать различные функции модуля os в зависимости от ваших потребностей. Например, для получения текущей директории:
current_directory = os.getcwd()
print("Текущая директория:", current_directory)

Модуль os предоставляет множество других функций, таких как os.listdir(), os.mkdir(), os.remove() и многие другие, для выполнения различных операций.

#python #os
Взаимодействие с HTTP с помощью curl_cffi

Что такое curl_cffi?

curl_cffi - это обертка над библиотекой libcurl, предоставляющая Python-разработчикам удобный интерфейс для отправки HTTP-запросов, управления сессиями и обработки ответов.

Плюсы использования curl_cffi:
- Поддерживает подделку отпечатков JA3/TLS и http2.
- Гораздо быстрее, чем requests/httpx, сопоставимо с aiohttp/pycurl.
- Одинаковый синтаксис как и у requests.
- Предварительно скомпилирован, поэтому вам не нужно компилировать его на вашем компьютере.
- Поддерживает asyncio с поворотом прокси для каждого запроса.
- Поддерживает http 2.0, что не предоставляет requests.

Пример использования curl_cffi:

from curl_cffi import Curl

# Создание объекта Curl
curl = Curl()

# Установка URL
curl.setopt(Curl.URL, 'https://api.example.com')

# Выполнение GET-запроса
curl.perform()

# Получение ответа
response = curl.getvalue()

# Вывод результата выполнения запроса
print(response)


В данном примере мы создаем объект Curl, устанавливаем URL и выполняем GET-запрос. Результат запроса сохраняется в переменной response.

Настройка параметров запроса:

from curl_cffi import Curl

# Создание объекта Curl
curl = Curl()

# Установка URL
curl.setopt(Curl.URL, 'https://api.example.com')

# Установка параметров запроса
curl.setopt(Curl.HTTPHEADER, ['Content-Type: application/json'])
curl.setopt(Curl.POSTFIELDS, '{"key": "value"}')

# Выполнение POST-запроса
curl.perform()

# Получение ответа
response = curl.getvalue()

# Вывод результата выполнения запроса
print(response)


В данном примере мы добавляем заголовок и данные для POST-запроса. Метод setopt используется для установки различных параметров запроса.

Модуль curl_cffi обладает богатым функционалом, таким как управление cookie, обработка редиректов, аутентификация, и многое другое.

Надеюсь, что вы найдете модуль curl_cffi полезным в ваших проектах, требующих взаимодействия с внешними серверами по протоколу HTTP. Для более подробной информации ознакомьтесь с документацией.

#python #curl_cffi
Всегда мечтал быть айтишником? Освой новую профессию промт-инженера! Гарантия трудоустройства и низкая конкуренция!

Приходи на бесплатный вебинар и узнай как:

- Повысить свой доход на рабочем месте, создавая нейро-сотрудников
- Получить новую специальность и увеличить доход на 30-40%
- Создавать нейронки и продавать на заказ от 1 млн за проект
- Зарабатывать на фрилансе от 300 000 рублей
- Найти хобби, которое прокачает твой мозг и сделает жизнь ярче

Обо всем ты узнаешь на бесплатном вебинаре от AI University.
Вот ссылка, жми СЮДА 

Реклама. ООО "ТЕРРА ЭЙАЙ". ИНН 9728019395. erid: LjN8KME2w
Исследование структуры кода с помощью модуля ast

При работе с кодом на Python, иногда возникает необходимость анализа его структуры. Для этого идеально подходит модуль ast (Abstract Syntax Trees), который предоставляет мощные инструменты для работы с абстрактными синтаксическими деревьями.

Что такое ast?

ast - это модуль Python, который позволяет разбирать и анализировать исходный код на Python, представляя его в виде абстрактного синтаксического дерева (AST). AST представляет собой структурированное представление кода, которое легко интерпретировать и анализировать.

Пример использования модуля ast:

import ast

code = "print('Hello, ast!')"
tree = ast.parse(code)

print(ast.dump(tree))


В данном примере мы использовали функцию ast.parse для разбора строки кода с помощью модуля ast. Функция ast.dump выводит структуру AST в удобочитаемом формате.

Анализ структуры кода:

import ast

code = """
def greet(name):
print(f'Hello, {name}!')
"""

tree = ast.parse(code)

for node in ast.walk(tree):
if isinstance(node, ast.FunctionDef):
print(f"Найдена функция: {node.name}")
elif isinstance(node, ast.Print):
print("Обнаружен оператор печати")

В данном примере мы использовали модуль ast для анализа структуры кода. Функция ast.walk позволяет обойти все узлы AST, а затем мы проверяем их типы для выделения определенных элементов, таких как функции или операторы.

Модуль ast также предоставляет возможности для более сложных операций, таких как изменение кода, создание новых выражений и многое другое.

#python #ast #анализкода
🎧Битмейкеры могут начинать искать работу — GigaChat начнет генерировать музыку по текстовым запросам. Этого удастся достичь, благодаря интеграции в сервис нейросетей CLaMP и SymFormer.

О новой возможности GigaChat рассказал вице-президент по цифровым поверхностям «Салют» Сбера Денис Филиппов в рамках конференции AI Journey 2023.

Как это работает: пользователь создает запрос а-ля «Придумай трек в стиле кантри» и получает аудиофайл со сгенерированной композицией, а также нотную партитуру в формате MIDI. Первый можно слушать и скачивать, а вторую — использовать в проектах и продакшене.

К слову, GigaChat есть прямо в Telegram 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
Работа с регулярными выражениями используя re

Регулярные выражения (регулярки) являются инструментом для работы с текстовой информацией. Они позволяют осуществлять поиск, извлечение и модификацию текста, используя гибкие шаблоны. Сегодня, мы рассмотрим, как работать с регулярками в Python используя модуль re.

Что такое модуль re?

Модуль re в Python предоставляет функционал для работы с регулярными выражениями. Регулярные выражения (regex) - это шаблоны, описывающие набор символов с определенными свойствами.

В данном примере мы использовали функцию re.search для поиска подстроки в тексте. Параметр re.IGNORECASE делает поиск регистронезависимым.

Модуль re также предоставляет возможности для более сложных операций, таких как замена текста по шаблону, разделение строк на подстроки и многое другое.

Для более подробной информации рекомендуется изучить официальную документацию

#python #regex
Локализация в Python с помощью модуля gettext

В процессе разработки программ иногда необходимо предоставить поддержку разных языков. Модуль gettext в Python предоставляет удобный механизм локализации, который позволяет адаптировать ваше приложение для различных языковых сообществ.

Что такое gettext?
gettext - это модуль Python, предназначенный для обеспечения поддержки интернационализации и локализации. Он позволяет создавать переводы строк на различные языки, обеспечивая легкость адаптации приложения под разные культурные контексты.

Пример использования gettext:
import gettext
from pathlib import Path
translations = gettext.translation('your_app', localedir=Path('locales'), languages=['ru'])
translations.install()
print(_("Hello, gettext!"))

В данном примере мы используем модуль gettext для загрузки файлов перевода из директории 'locales' для русского языка. Функция _() используется для обозначения строк, подлежащих локализации.

Создание файлов перевода:
Для создания файлов перевода можно воспользоваться утилитой pybabel:
pybabel extract -F babel.cfg -o messages.pot your_app
pybabel init -i messages.pot -d locales -l ru


gettext также предоставляет множество возможностей для более сложных сценариев локализации, таких как форматирование чисел, дат и поддержка множественных форм.
#python #gettext #i18n
Работа с форматированием текста

textwrap — это стандартная библиотека, которая спользуется для форматирования текста в тех случаях, когда нам нужна красивая печать.

Он предлагает функциональность аналогичную текстовым редакторам и текстовым процессорам.

Немного о возможностях:

textwrap.fill() — принимает текст и возвращает отформатированный текст, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац.

textwrap.dedent() — используется для удаления общего префикса пробела из всех строк в тексте.

textwrap.indent() — используется для добавления текст префикса ко всем строкам в параграфе

#python #textwrap
Типизация в Python с использованием модуля typing

В Python модуль typing предоставляет возможность добавлять подсказки типов для переменных, функций и классов, что делает код более явным и понятным.

Зачем использовать типизацию?

1. Ясность и понятность кода:
Добавление аннотаций типов помогает читателям быстро понять, какие данные ожидаются и какие типы переменных возвращаются из функций.

2. Предотвращение ошибок: Статические анализаторы кода, такие как mypy, могут обнаруживать потенциальные ошибки до выполнения программы, что уменьшает количество багов.

3. Документация кода: Подсказки типов могут служить формой документации, особенно полезной при совместной разработке. Разработчики могут быстро понимать интерфейсы функций и классов.

Пример использования типизации для переменных и функций:
from typing import List, Tuple

def multiply(a: int, b: int) -> int:
return a * b

def process_list(data: List[int]) -> Tuple[int, int]:
sum_values = sum(data)
average = sum_values / len(data)
return sum_values, average

# Пример использования
result1 = multiply(5, 3)# Ожидается int
data_list = [1, 2, 3, 4, 5]
result2 = process_list(data_list)# Ожидается Tuple[int, int]


Здесь a: int и b: int указывают на типы аргументов функции, а -> int и -> Tuple[int, int] - на типы возвращаемых значений. Это помогает читателям кода лучше понимать ожидаемую структуру данных и типы переменных.

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

#python #typing
Оптимизация Памяти в Python с Библиотекой gc

Если вы заботитесь о производительности ваших Python-приложений, то библиотека gc (Garbage Collector) вам точно пригодится. Давайте рассмотрим, почему.

gc в Python предназначена для автоматического управления памятью, освобождая вас от рутины по управлению объектами. Это особенно полезно в задачах, связанных с избежанием утечек памяти и оптимизацией её использования.

import gc

gc.enable()

class SampleObject:
def __init__(self, value):
self.value = value

objects_list = [SampleObject(i) for i in range(1000000)]

gc.collect()

# Пример обработки данных (например, фильтрация объектов)
filtered_objects = [obj for obj in objects_list if obj.value % 2 == 0]

gc.collect()

print(filtered_objects[:10])


В приведенном коде мы создаем список объектов SampleObject, который может занять значительное количество памяти. После обработки данных или в других стратегических точках программы, вызывается сборщик мусора для освобождения памяти, занятой неиспользуемыми объектами.

Использование библиотеки gc в Python может значительно улучшить производительность ваших программ, освободив вас от рутины по управлению памятью. Это особенно важно в проектах с большим объемом данных или длительным временем выполнения.

#python #gc #garbagecleaner
Параллельное Исполнение в Python с Помощью Модуля threading

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

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

Пример:

import threading
import time

# Функция, которую будем выполнять в параллельных потоках
def print_numbers():
for i in range(5):
time.sleep(1) # Эмулируем длительную операцию
print(f"Thread {threading.current_thread().name}: {i}")

# Создаем два потока
thread1 = threading.Thread(target=print_numbers, name="Thread 1")
thread2 = threading.Thread(target=print_numbers, name="Thread 2")

# Запускаем потоки
thread1.start()
thread2.start()

# Ожидаем завершения потоков перед завершением программы
thread1.join()
thread2.join()

print("Главный поток выполнения завершен.")


В данном примере создаются два потока, каждый из которых выполняет функцию print_numbers, эмулируя длительную операцию с использованием time.sleep. Запуск потоков осуществляется с помощью метода start(), и главный поток ожидает их завершения с использованием метода join().

Модуль threading предоставляет удобные средства для работы с параллельными потоками в Python, что позволяет улучшить производительность приложений. Однако, следует быть внимательными при работе с потоками из-за потенциальных проблем с блокировками и синхронизацией данных. Попробуйте интегрировать threading в свой код и ускорьте выполнение задач! 💻

#python #threading
Please open Telegram to view this post
VIEW IN TELEGRAM
Python Academy
Сегодня у нас необычный тест для тру айтишников. Скажите нам, что вы видите на картинке, и узнайте, кто вы из разрабов. Если вы видите художника, затерявшегося в густой толпе и оставившего лишь несколько подсказок о своем местонахождении, то поздравляем…
💻 Рассказывали вам про задачи на Yandex Cup 2023. В финале команда Яндекса также решила совместить IT и искусство. Пространство было оформлено в стиле демосцены — субкультуры, связанной с компьютерным искусством и киберкультурой, и сами задачи также были тематическими. 

Один из запоминающихся арт-объектов соревнования: музыкальный перформанс “Код степи”, созданный участниками лейбла qazaq indie — Балхаш снится, Samrattama, — и другими независимыми художниками, где объединились элементы казахстанской культуры и технологий. Код, который писали участники, был синтезирован в звук и стал частью музыкального произведения.   

Получилось очень атмосферно. Было ощущение, что смотришь не трансляцию соревнования, а стрим из киберпанк-будущего. Кстати, в процессе решения задач, участники могли послушать доклады от финалистов ML-трека. Советую посмотреть эту часть, если любите участвовать в IT-соревнованиях, тут над организацией прямо заморочились.
Валидаторы данных

Как правило, разработчики пишут регулярные выражения для обработки специфических строк. Но для таких данных как, почта или ссылка, изобретать велосипед не нужно.

Модуль validators позволяет использовать уже готовые валидаторы для самых распространенных задач. В примере можете как раз увидеть валидацию почты и ссылок.

Помимо этого, validators позволяет также работать с ipv4, ipv6, mac адресами и многим другим. В итоге, имеем лаконичный и простой модуль с хорошим функционалом.

#python #validators
2024/09/27 09:34:23
Back to Top
HTML Embed Code: