Python Hub - сборище Питонистов
1.71K subscribers
657 photos
1 video
37 files
276 links
Уголок счастья для любого питониста.

Сотрудничество или заказы: @leshunist

https://shcoder.dev - студия разработки ShcoderDevelopment

https://t.me/pythonhub_chat - чат
Download Telegram
‼️ Библиотека Unstructured в Python: Примеры и Применение ‼️


🔻 Установка и Основы Unstructured

Для начала использования библиотеки Unstructured, её необходимо установить. Это можно сделать с помощью командного менеджера pip:

pip install unstructured


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

from unstructured import Text

text_data = Text.from_file('example.txt')
print(text_data.content)


Эти простые команды позволяют легко импортировать и работать с текстовыми данными.

🔻 Обработка Текстовых Данных

Одной из основных возможностей библиотеки Unstructured является обработка текстов. Она позволяет выполнять такие задачи, как токенизация, лемматизация и извлечение ключевых слов. Рассмотрим пример токенизации текста:

from unstructured import Text

text_data = Text('Это пример текста для токенизации.')
tokens = text_data.tokenize()
print(tokens)


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

🔻 Работа с Изображениями

Unstructured также поддерживает работу с изображениями. Она позволяет извлекать текст из изображений с помощью технологии OCR (Оптическое Распознавание Символов). Рассмотрим пример извлечения текста из изображения:

from unstructured import Image

image_data = Image.from_file('example.png')
text_from_image = image_data.extract_text()
print(text_from_image)


Этот код позволяет прочитать текст, содержащийся в изображении, и вывести его на экран. Это может быть полезно для задач по автоматизации и анализа данных.
👍41
⚠️ Alert! Промокод на бесплатное использование хостинга найден! ⚠️

😎 Специально для вас у хостинга Hostetski был создан промокод SHCODER14

При вводе в процессе заказа дает скидку до 3$ на срок до одного месяца.

Этого хватит на базовый и базовый+ тариф, а потом уже сможете решить, оставаться пользоваться данным хостом или нет. 🤔

Ссылка на заказ тарифа:
https://hostetski.ge/cart.php?a=confproduct&i=0&aff=2

📹Видос, где можно детально посмотреть, как загрузить своего тг бота есть у меня на канале:

https://www.youtube.com/watch?v=kwFEeuzICjU
👍5🗿2👎1
🔍 Нашёл интересную статью на Хабре о текущих языках программирования, зарплатах и регионах! 📊💻

Если вам интересно, какие языки программирования сейчас в тренде и сколько зарабатывают разработчики в разных регионах, обязательно посмотрите! 🌍💸

💡 Для тех, кому лень читать всю статью, вот ссылка и несколько скриншотов:
Читать статью
👍61😁1
📅 Библиотека Pendulum в Python: удобное создание и форматирование дат! 🕰

Одним из основных преимуществ Pendulum является возможность легко создавать и форматировать даты. Давайте рассмотрим пример:

import pendulum

# Создание даты
date = pendulum.datetime(2023, 10, 5)

# Форматирование даты
formatted_date = date.format('YYYY-MM-DD')
print(formatted_date) # Вывод: 2023-10-05


С помощью Pendulum вы можете легко создавать даты и форматировать их в нужный формат с помощью метода format.

🌍 Работа с временными зонами

Pendulum значительно упрощает работу с временными зонами. Пример создания даты в одной временной зоне и её преобразования в другую:

# Создание даты в временной зоне 'Europe/Moscow'
moscow_time = pendulum.datetime(2023, 10, 5, tz='Europe/Moscow')
print(moscow_time) # Вывод: 2023-10-05T00:00:00+03:00

# Преобразование в другую временную зону
ny_time = moscow_time.in_timezone('America/New_York')
print(ny_time) # Вывод: 2023-10-04T17:00:00-04:00


С Pendulum работа с временными зонами становится интуитивно понятной и простой!

🔄 Различные операции с датами


Pendulum предоставляет широкий набор методов для выполнения различных операций с датами. Пример добавления и вычитания временных интервалов:

# Создание даты
date = pendulum.datetime(2023, 10, 5)

# Добавление 5 дней
new_date = date.add(days=5)
print(new_date) # Вывод: 2023-10-10T00:00:00+00:00

# Вычитание 2 часов
new_date = date.subtract(hours=2)
print(new_date) # Вывод: 2023-10-04T22:00:00+00:00


С методами add и subtract вы можете легко выполнять арифметические операции с датами, что делает работу с временными интервалами очень удобной. 📈🗓
👍4👎1
🚀 Библиотека python-benedict в Python. [словарь на стероидах] 🗂


Основное преимущество python-benedict состоит в её способности обрабатывать вложенные словари и предоставлять удобные методы для доступа к данным. Например, вы можете легко получить значение по сложному ключу, используя метод get.

from benedict import benedict

data = benedict({
'user': {
'profile': {
'name': 'John Doe'
}
}
})

print(data.get('user.profile.name')) # Вывод: John Doe


🔍 Работа с вложенными данными

Одной из ключевых особенностей библиотеки является её способность работать с вложенными данными. Вам не нужно писать сложные циклы или проверки, чтобы получить доступ к глубоко вложенным значениям. python-benedict делает это за вас.

data = benedict({
'config': {
'database': {
'host': 'localhost',
'port': 5432
}
}
})

print(data['config.database.host']) # Вывод: localhost
print(data['config.database.port']) # Вывод: 5432


Также вы можете использовать метод update для изменения вложенных значений.

data.update('config.database.port', 3306)
print(data['config.database.port']) # Вывод: 3306

🔄 Преобразование форматов данных

python-benedict поддерживает преобразование данных между различными форматами, такими как JSON, XML и другие. Это делает библиотеку полезной для задач, связанных с обменом данными между различными системами.

json_data = """
{
"user": {
"profile": {
"name": "Jane Doe"
}
}
}
"""

data = benedict.from_json(json_data)
print(data['user.profile.name']) # Вывод: Jane Doe

xml_data = data.to_xml()
print(xml_data)


Это особенно удобно, когда нужно быстро преобразовать данные из одного формата в другой без необходимости использования дополнительных библиотек. 🌐🔄
👍6
⁉️ Разница между CEO и SEO ⁉️


🔍 CEO (Chief Executive Officer)

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

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

💼 SEO менеджер (Search Engine Optimization Manager)

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

Его работа направлена на повышение рейтинга сайта и, как следствие, увеличение трафика.

🆚 Основные различия между CEO и SEO менеджером

Различия между CEO и SEO менеджером заключаются в их обязанностях и уровне ответственности.

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

В то же время, SEO менеджер фокусируется исключительно на цифровом маркетинге и оптимизации сайта для поисковых систем. Он является специалистом в своей области и работает над улучшением онлайн-присутствия компании, но не принимает глобальные управленческие решения.
👍4😱1
Что выдаст код выше?
Anonymous Quiz
41%
a
18%
'a'
1%
b
35%
Error
6%
Не знаю
👍6
Python Hub - сборище Питонистов
Photo
Разбор 😎

У множества мы не можем взять элемент по индексу.
👍2
🤪 Множества в Python. Основы. {} 🔥


Создание множеств 🚀

Множества в Python можно создавать несколькими способами. Один из них — использование встроенной функции set(). Например, можно создать пустое множество с помощью set(), или же инициализировать его элементами. Еще один способ создания множества — использование фигурных скобок {}. Однако, если в фигурных скобках не указано ни одного элемента, это трактуется как создание пустого словаря, а не множества.

# Создание пустого множества
empty_set = set()

# Создание множества с элементами
numbers = {1, 2, 3, 4, 5}


Основные операции с множествами 💡

Множества поддерживают множество стандартных операций, таких как объединение, пересечение и разность. Эти операции могут быть выполнены с помощью операторов или встроенных методов. Например, для объединения двух множеств можно использовать оператор | или метод union(), а для пересечения — оператор & или метод intersection().

# Объединение множеств
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1 | set2 # {1, 2, 3, 4, 5}

# Пересечение множеств
intersection_set = set1 & set2 # {3}


Примеры использования множеств 📊

Множества находят широкое применение в различных областях программирования. Одним из примеров является удаление дубликатов из списка. С помощью множества можно быстро преобразовать список с дубликатами в список уникальных элементов. Еще один пример — проверка принадлежности элемента множеству, что выполняется значительно быстрее, чем в списках.

# Удаление дубликатов из списка
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = list(set(numbers)) # [1, 2, 3, 4, 5]

# Проверка принадлежности элемента множеству
if 3 in unique_numbers:
print("3 присутствует в множестве")
👍3
❗️❗️❗️❗️Библиотека newspaper3k в Python 📰 ❗️❗️❗️❗️

Извлечение данных из новостных статей 📑

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

Пример кода для извлечения данных:

from newspaper import Article

# URL статьи
url = 'https://example.com/some-news-article'

# Создание объекта статьи
article = Article(url)

# Загрузка и парсинг статьи
article.download()
article.parse()

# Извлечение данных
print("Заголовок:", article.title)
print("Автор(ы):", article.authors)
print("Дата публикации:", article.publish_date)
print("Текст статьи:", article.text)


Анализ контента 🧠

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

Пример кода для анализа контента:

# NLP (Natural Language Processing) для анализа
article.nlp()

print("Ключевые слова:", article.keywords)
print("Резюме:", article.summary)


Работа с большими объемами данных 💼


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

Пример кода для работы с несколькими статьями:

from newspaper import news_pool

# URL статей
urls = [
'https://example.com/news1',
'https://example.com/news2',
'https://example.com/news3'
]

# Создание объектов статей
articles = [Article(url) for url in urls]

# Загрузка и парсинг статей с использованием многопоточности
news_pool.set(articles, threads_per_source=2)
news_pool.join()

for article in articles:
article.parse()
print("Заголовок:", article.title)


Ссылка на либу:

https://pypi.org/project/newspaper3k/
👍21
Какой вариант кода является верным?
Anonymous Quiz
64%
1
2%
2
12%
3
10%
4
7%
Никакой
5%
Не знаю
👍4
Python Hub - сборище Питонистов
Photo
Разбор 😎

Разбора не будет. Это аксиома)

Аксиома - исходное положение какой-либо теории, принимаемое в рамках данной теории истинным без требования доказательства
👍4🗿2
SQL вставка внешних ключей в таблицу при помощи Python

Подготовка базы данных

Прежде чем начать вставку внешних ключей, необходимо подготовить базу данных и создать таблицы, между которыми мы будем устанавливать связи. Рассмотрим простой пример двух таблиц: authors и books. Таблица authors будет содержать информацию об авторах, а таблица books - информацию о книгах, написанных этими авторами. Для начала создадим эти таблицы с использованием языка SQL.

CREATE TABLE authors (
author_id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL
);

CREATE TABLE books (
book_id SERIAL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author_id INT,
FOREIGN KEY (author_id) REFERENCES authors (author_id)
);


Вставка данных и внешних ключей с помощью Python 🐍

Теперь, когда наша база данных готова, мы можем перейти к вставке данных и внешних ключей с помощью Python. Для этого нам понадобится библиотека psycopg2, которая позволяет взаимодействовать с PostgreSQL базой данных. Убедитесь, что она установлена:

pip install psycopg2


Далее, напишем скрипт на Python, который будет вставлять данные в таблицы authors и books, устанавливая соответствующие внешние ключи.

import psycopg2

# Соединение с базой данных
conn = psycopg2.connect(
dbname="your_db_name",
user="your_db_user",
password="your_db_password",
host="your_db_host",
port="your_db_port"
)
cursor = conn.cursor()

# Вставка данных в таблицу authors
cursor.execute("INSERT INTO authors (name) VALUES (%s) RETURNING author_id", ("J.K. Rowling",))
author_id = cursor.fetchone()[0]

#Вставка данных в таблицу books с указанием внешнего ключа
cursor.execute("INSERT INTO books (title, author_id) VALUES (%s, %s)", ("Harry Potter", author_id))

# Сохранение изменений и закрытие соединения
conn.commit()
cursor.close()
conn.close()


Проверка и управление целостностью данных 🛡

Внешние ключи помогают поддерживать целостность данных в базе данных. Например, они не позволяют вставлять в таблицу books значения author_id, которых нет в таблице authors. Рассмотрим, как это работает на практике. Попробуем вставить книгу с несуществующим author_id и посмотрим, что произойдет.

try:
cursor.execute("INSERT INTO books (title, author_id) VALUES (%s, %s)", ("Unknown Book", 999))
conn.commit()
except psycopg2.IntegrityError as e:
conn.rollback()
print("Ошибка целостности данных: невозможно вставить книгу с несуществующим автором.")


В данном случае psycopg2 выбросит исключение IntegrityError, и мы сможем обработать его, откатив изменения и предупредив пользователя об ошибке.
👍41
🔢 Имеется кортеж вида t = (4, 2, 3). Какая из операций приведёт к тому, что имя t будет ссылаться на кортеж (1, 2, 3)?
Anonymous Quiz
16%
t[0] = 1
12%
t = (1) + t[1:]
19%
t = (1,) + t[1:]
12%
t.startswith(1)
30%
Нет верного варианта
12%
Не знаю
👍5🤔2🤯1
Python Hub - сборище Питонистов
🔢 Имеется кортеж вида t = (4, 2, 3). Какая из операций приведёт к тому, что имя t будет ссылаться на кортеж (1, 2, 3)?
Разбор!

Поскольку кортежи неизменяемы, их нельзя модифицировать на месте, но мож­но создать новый кортеж с желаемым значением. Изменить первый элемент можно за счёт создания нового кортежа из частей имеющегося с помощью срезов и конкатенации: `t = (1,) + t[1:]`. При этом одноэлементные кортежи требуют хвостовой запятой, иначе число в скобках это всего лишь число.
👍61