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

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

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

Канал включён в перечень РКН: https://rkn.link/TVu
Download Telegram
Получение геолокации по IP с использованием ip2geotools

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

from ip2geotools.databases.noncommercial import DbIpCity

def get_ip_geolocation(ip_address):
try:
response = DbIpCity.get(ip_address, api_key='free')
city = response.city
region = response.region
country = response.country
latitude = response.latitude
longitude = response.longitude

print(f"Информация о местоположении для IP {ip_address}:")
print(f"Город: {city}")
print(f"Регион: {region}")
print(f"Страна: {country}")
print(f"Широта: {latitude}")
print(f"Долгота: {longitude}")

except Exception as e:
print(f"Ошибка при получении информации по IP {ip_address}: {e}")

ip_address_to_check = '8.8.8.8'
get_ip_geolocation(ip_address_to_check)


Этот код использует метод get из класса DbIpCity для получения информации о местоположении по заданному IP-адресу. Помните о том, что для использования некоторых баз данных может потребоваться API-ключ.

#python #ip2geotools
🔥4👍3😱31
Использование внешних процессов в 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
👍62
Деструкторы

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

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

Вообще деструкторы крайне редко переопределяется в Python, но полезно знать, что именно эти методы отвечают за очистку при удалении объекта.

#классы
3
dateparser

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

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

#python #dateparser
👍5
⚡️ Мы сделали нового книжного бота — он гораздо быстрее по скорости, в нем в 4 раза больше книг, исправлена ошибка с форматами, теперь есть все форматы, включая PDF

В случае блокировки этого бота тот бот будет жить, срочно сохраняйте нового бота, чтобы читать все книги мира: @flibustatopbot
👎4👍1
Работа с методом str.replace() в Python

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

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

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

#python #replace
👍3
Работа с 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
👍1