Python Academy
47.8K subscribers
1.19K photos
3 videos
412 links
Python Academy — один канал вместо тысячи учебников

Чат канала: @python_academy_chat

Сотрудничество: @zubar89

Канал включён в перечень РКН: https://rkn.link/TVu
Download Telegram
Использование внешних процессов в 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
👍63
dateparser

dateparser — это библиотека Python, предоставляющая удобные инструменты для разбора и анализа текстовых дат и времени. Она автоматически определяет формат даты и времени в текстовой строке и преобразует его в объект datetime. Это особенно полезно, когда у вас есть текстовые описания дат и времени в различных форматах, и вы хотите их структурировать.

Обратите внимание, что dateparser может использовать текущие локальные настройки для определения форматов даты и времени, поэтому результаты могут зависеть от настроек вашей системы. Вы также можете явно указать нужную локаль с помощью аргумента locales, если это необходимо.

#python #dateparser
👍9
Работа с методом str.replace() в Python

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

Метод принимает два основных аргумента: первый - это подстрока, которую нужно заменить в исходной строке, а второй - это подстрока, на которую происходит замена.

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

#python #replace
👍4
Работа с PDF файлами используя PyPDF2

В этом посте, вы узнаете, как работать с PDF-файлами в Python. PyPDF2 предоставляет функциональность для работы с PDF-файлами в Python, позволяя автоматизировать процессы обработки и анализа документов в формате PDF.

Пример кода:

import PyPDF2

with open('example.pdf', 'rb') as file:

pdf_reader = PyPDF2.PdfReader(file)

num_pages = len(pdf_reader.pages)
print(f"Количество страниц в PDF: {num_pages}")

first_page_text = pdf_reader.pages[0].extract_text()
print("Текст с первой страницы:")
print(first_page_text)

pdf_writer = PyPDF2.PdfWriter()

pdf_writer.add_page(pdf_reader.pages[0])

with open('new_document.pdf', 'wb') as new_file:
pdf_writer.write(new_file)

print("Обработка PDF завершена.")


В этом примере мы открываем PDF-файл, используя PyPDF2, извлекаем информацию о количестве страниц и тексте с первой страницы. Затем мы создаем новый PDF-файл, добавляем в него первую страницу и сохраняем его под именем "new_document.pdf".

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

#python #pypdf2
2👍2
Картографическая визуализация с использованием Folium

Folium обеспечивает интеграцию данных на карты, позволяя создавать как фоновые картограммы, так и размещать на картах векторные, растровые и HTML элементы в виде маркеров.

Эта библиотека поддерживает пользовательские наборы тайлов от MapBox или Cloudmade.

В арсенале Folium имеются различные типы маркеров, от простых маркеров местоположения со стандартными листовками, содержащими всплывающие окна и HTML подсказки, до возможности встраивания изображений, видео, а также GeoJSON и TopoJSON объектов.

Посмотреть результат выполнения кода со скрина можно тут -- https://i.imgur.com/QhNDb5I.png

#python #folium
5
Легкий веб-фреймворк

Bottle – это быстрый, простой и легкий микро-веб-фреймворк WSGI для Python. Он распространяется как единый файловый модуль и не имеет никаких зависимостей, кроме стандартной библиотеки Python.

Несмотря на свою минималистичность, Bottle предоставляет довольно широкие возможности, которых на 100% хватает для мелких и средних проектов. Вот список основных возможностей: routing, templates, POST-routing, обработка форм, cookies и сервер.

После запуска подобного примера можете перейти в браузере по адресу localhost:5000/hello/world и посмотреть на результат, полученный из всего пяти строк кода.

#python #bottle
1
Управления файлами и директориями в Python с библиотекой shutil

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

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

Примеры использования shutil доступны на фото.

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

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

#python #shutil
👍3
Использование функции zip в Python

Функция zip в Python формирует итератор, объединяющий элементы из нескольких списков. Это удобно для одновременного перебора элементов нескольких списков в цикле for или для реализации параллельной сортировки.

Пример:
# Допустим, у нас есть два списка
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

# Используем функцию zip для объединения этих списков
zipped = zip(list1, list2)

# Теперь мы можем перебрать объединенные элементы
for num, letter in zipped:
print(f"Число: {num}, Буква: {letter}")

# Вывод:
# Число: 1, Буква: a
# Число: 2, Буква: b
# Число: 3, Буква: c


#python #zip
👍131
Хеширование в Python используя hashlib

Библиотека hashlib предоставляет алгоритмы хеширования, которые позволяют создавать уникальные хеш-суммы для данных. Это полезно для проверки целостности файлов, хранения паролей в безопасной форме и других задач безопасности данных.

Пример кода:
import hashlib

# Пример хеширования строки с использованием SHA-256
data_to_hash = "Hello, World!"
hashed_data = hashlib.sha256(data_to_hash.encode()).hexdigest()

print(f"Исходные данные: {data_to_hash}")
print(f"Хеш-сумма (SHA-256): {hashed_data}")
В этом примере мы используем алгоритм SHA-256 из библиотеки hashlib для создания хеш-суммы строки "Hello, World!". Результат выводится в шестнадцатеричном формате.

Библиотека hashlib является одним из лучших инструментов для обеспечения безопасности данных в Python. Путем использования различных алгоритмов хеширования, таких как MD5, SHA-256 и других, вы можете обеспечить целостность данных и повысить уровень безопасности ваших приложений.

#python #hashlib
👍51
Типизация в 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
👍2
VisPy

VisPy — это библиотека для визуализации данных в Python, предназначенная для создания высокопроизводительных интерактивных визуализаций. Она использует библиотеку OpenGL для рендеринга и обеспечивает доступ к графическим возможностям вашего компьютера через современный Python API.

После установки библиотеки, вы можете создать графические приложения с использованием VisPy. В примере на картинке создается окно с красным треугольником. VisPy предоставляет широкие возможности для создания 2D и 3D визуализаций, а также возможность работы с пользовательским вводом, анимациями и интерактивностью.

Вы можете найти дополнительные примеры и документацию на официальном сайте VisPy, чтобы более подробно изучить возможности этой библиотеки и начать создавать собственные визуализации.

#python
5👍4
Загрузка файлов асинхронно

Если у нас есть список URL картинок для загрузки, использование простого цикла for позволит нам загрузить их последовательно, по одной за раз.

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

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

С помощью метода .map(download, urls) можно развернуть функцию загрузки на каждый URL из списка, обеспечивая их параллельную обработку.

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

#python #threading
👍42
Метод isspace()

Метод isspace() — это строковый метод, который используется для проверки, состоит ли строка только из пробельных символов (пробелов, символов табуляции, символов новой строки и других символов, которые считаются «пробельными» в контексте языка Python).

Примечание: isspace() не изменяет исходную строку, а просто возвращает булево значение в зависимости от условия.

#python
👍5