Ghostly Python
9.01K subscribers
535 photos
24 videos
599 links
Погружаемся в мир Python: задачи, фишки, библиотеки и террабайты полезного материала.

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

Цены: @heywan_media

Реклама на бирже: https://telega.in/c/+IOa15XDNbxRkYzNi
Download Telegram
👩‍💻 Модуль copy в Python

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

Из документации по Python 3

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


➡️ Поверхностное копирование

Поверхностное копирование строит новый составной объект, а затем вставляет в него ссылки на объекты имеющиеся в оригинале.

>>> import copy
>>> a = [[1],[2],[3]]
>>> b = copy.copy(a) # поверхностно копируем список a в список b

>>> a
#[[1], [2], [3]]
>>> b
#[[1], [2], [3]]


➡️ Глубокое копирование

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


>>> import copy
>>> a = [[1],[2],[3]]
>>> b = copy.deepcopy(a) # создаем глубокую копию списка a

>>> a[0][0] = 0
>>> a[1] = None

>>> a
#[[0], None, [3]]
>>> b
#[[1], [2], [3]]


📌 Вывод

🟢 Поверхностное копирование создает новый объект, который содержит ссылки на те же элементы, что и оригинал.

🟢 Глубокое копирование создает новый объект, в который рекурсивно вставляются копии всех элементов оригинала, обеспечивая независимость копии от оригинала.

Кстати, пишите в комменты ваши пожелания по контенту 🔥
P.S. На днях уже залью обещанный гайд =)


🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
⚙️ Уроки по NumPy

Что из себя представляет пакет NumPy для языка Python. Как он устанавливается и импортируется в программы. Первое знакомство с массивами array. Способ их задания с помощью функции array и демонстрация некоторых возможностей.

➡️ Ссылка на курс

🐍 Ghostly Python | #уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥3
💡 1000+ идей для проектов

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

📌 Что внутри?

Проекты для новичков: калькуляторы, конвертеры и простые игры.
Идеи для продвинутых: чат-боты, системы управления, веб-приложения.
Креативные задачи: генераторы паролей, парсеры данных, API для фильмов.
Темы на любой вкус: от искусственного интеллекта до мобильных приложений.

📱 Ссылка на репозиторий

🐍 Ghostly Python | #идеи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
👁 Скрипт: Удаление дубликатов файлов в заданной директории

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

⚙️ Как это работает:

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

📂 Скрипт с подробным комментированием кода уже в архиве:


➡️ Скачать...

🐍 Ghostly Python | #скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🔍 Фишка: Быстрая проверка подстроки с помощью оператора in

Вместо использования громоздких методов поиска, таких как .find(), Python позволяет лаконично проверить наличие подстроки с помощью оператора in.

⚙️ Пример:

text = "Python — отличный язык!"
if "отличный" in text:
print("Нашли слово!") # Вывод: Нашли слово!


Оператор in работает не только со строками, но и с другими коллекциями (списки, множества, словари).

🔜 Пример с коллекциями:

items = [1, 2, 3]
print(2 in items) # Вывод: True


🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆11👍9🔥2
🖼️ Библиотека: Humanize

Humanize — это библиотека для преобразования чисел, дат и других данных в удобочитаемый формат. Она позволяет выводить информацию в виде, понятном пользователю, например, "2 часа назад" или "5.4K".

⚙️ Пример использования

import humanize
from datetime import datetime, timedelta

# Преобразование чисел
print(humanize.intword(1234567)) # "1.2 million"
print(humanize.intcomma(1234567)) # "1,234,567"

# Форматирование времени
now = datetime.now()
past = now - timedelta(hours=5)
print(humanize.naturaltime(past)) # "5 часов назад"

# Размеры файлов
print(humanize.naturalsize(1024000)) # "1.0 MB"


Humanize делает ваш код более ориентированным на пользователя и улучшает представление данных.

✔️ Установка

pip install humanize


🐱 Ссылка на GitHub

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤‍🔥4
🖥 Методы списков в Python

🌐 А вот ещё годный сайт, где собраны самые используемые методы/функции Python

🐍 Ghostly Python | #шпаргалки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍196🔥1
👨‍💻 Гайд: Как работать с JSON в Python. Часть 1

JSON (JavaScript Object Notation) — это текстовый формат обмена данными, который часто используется в API, конфигурационных файлах и при работе с веб-приложениями. В Python для работы с JSON используется встроенный модуль json.

1️⃣ Чтение JSON-строк

Вы можете загружать JSON-данные из строки с помощью функции json.loads.

import json

# JSON-строка
data = '{"name": "Alice", "age": 25, "hobbies": ["reading", "coding"]}'

# Преобразуем строку в Python-словарь
parsed_data = json.loads(data)
print(parsed_data["name"]) # Alice
print(parsed_data["hobbies"]) # ['reading', 'coding']


2️⃣ Чтение JSON из файла

Если JSON-данные хранятся в файле, используйте функцию json.load.

import json

# Открываем файл с JSON
with open("data.json", "r") as file:
data = json.load(file)

# Работаем с данными
print(data["name"]) # Alice
print(data["age"]) # 25


➡️ Пример файла data.json:

{
"name": "Alice",
"age": 25,
"hobbies": ["reading", "coding"]
}


3️⃣ Запись JSON в файл

Функция json.dump сохраняет данные Python в файл в формате JSON.

import json

# Данные для записи
data = {
"status": "success",
"code": 200,
"message": "Data saved successfully!"
}

# Сохраняем в файл
with open("output.json", "w") as file:
json.dump(data, file, indent=4) # indent=4 делает JSON читабельным


➡️ Результат в файле output.json:

{
"status": "success",
"code": 200,
"message": "Data saved successfully!"
}


Чтобы не растягивать пост, я решил разбить эту тему на несколько частей. Во второй части рассмотрим: преобразование Python-объектов в JSON, настройку сериализации JSON, а также несколько советов по использованию модуля json.

🐍 Ghostly Python | #гайды
Please open Telegram to view this post
VIEW IN TELEGRAM
👍87🔥3👏1
📸 Скрипт: Сортировка фотографий по дате съёмки с помощью Python

Наверное у каждого есть папка с фотографиями, в которой свалено просто все, что можно, в одну кучу... Так вот если вы все таки надумали навести порядок, то можно организовать фото по дате съёмки с помощью библиотеки Pillow.

⚙️ Как это работает?

Фотографии часто содержат метаданные EXIF, где хранится дата съёмки. Мы используем её для создания папок и перемещения файлов.

✔️ Установка библиотеки

Для работы скрипта, потребуется установить библиотеку Pillow:

pip install pillow


📌 Что делает этот скрипт:

1. Считывает дату съёмки из EXIF-метаданных, а если их нет, то берет дату создания файла.
2. Создаёт папки для каждой даты (формат: YYYY-MM-DD).
3. Перемещает фотографии в соответствующие папки.

📂 Скрипт с комментированием кода уже в архиве:


➡️ Скачать...

🐍 Ghostly Python | #скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
📱 Списки (массивы) в Python и работа с ними

Статья рассказывает о списках в Python — одном из самых универсальных и часто используемых инструментов для работы с данными.

📌 Вы узнаете:

🟢 Как создавать списки и добавлять в них элементы.
🟢 Как работать с индексами, извлекать данные и использовать срезы.
🟢 Какие методы доступны для изменения, сортировки и фильтрации списков.
🟢 Практические примеры, которые помогут быстро разобраться с основными функциями списков.

🖥 Перейти к статье

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
🖥 Paramiko: модуль Python для работы с SSH-соединениями

Paramiko — это модуль Python, реализующий протокол SSHv2. Он обеспечивает возможность подключения к удаленным серверам по протоколу SSH и выполнения различных операций на них, таких как выполнение команд, передача файлов и создание туннелей.

⚙️ Простой пример использования

import paramiko

# Создаем объект SSHClient
ssh = paramiko.SSHClient()

# Устанавливаем политику авторизации (автоматически добавляем хосты в known_hosts)
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# Подключаемся к серверу
ssh.connect(hostname='example.com', username='user', password='password')

# Выполняем команду на сервере
stdin, stdout, stderr = ssh.exec_command('ls -l')

# Читаем вывод команды
print(stdout.read().decode())

# Закрываем соединение
ssh.close()


✔️ Установка

pip install paramiko


➡️ Документация paramiko

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
👨‍💻 Гайд: Как работать с JSON в Python. Часть 2

В первой части мы разобрались с чтением и записью JSON-данных. Теперь давайте посмотрим, как преобразовать Python-объекты в JSON, настроить сериализацию и эффективно использовать модуль json.

1️⃣ Преобразование Python-объектов в JSON

Чтобы конвертировать Python-объект в JSON-строку, используется функция json.dumps:

import json

# Python-словарь
data = {
"name": "Alice",
"age": 25,
"is_active": True
}

# Преобразование в JSON-строку
json_data = json.dumps(data)
print(json_data) # {"name": "Alice", "age": 25, "is_active": true}


➡️ Типы данных Python, такие как dict, list, str, int, float и bool, автоматически преобразуются в их JSON-аналоги.

2️⃣ Настройка сериализации JSON

Если данные содержат нестандартные типы, такие как datetime, то их нужно преобразовать перед сериализацией.

Пример:

import json
from datetime import datetime

# Python-данные с датой
data = {
"name": "Alice",
"created_at": datetime.now()
}

# Кастомная функция для обработки объектов
def custom_serializer(obj):
if isinstance(obj, datetime):
return obj.isoformat()
raise TypeError("Невозможно сериализовать объект")

# Сериализация с кастомной функцией
json_data = json.dumps(data, default=custom_serializer, indent=4)
print(json_data)


💡 Советы и трюки при работе с JSON

1️⃣ Форматированный вывод JSON

Добавьте параметр indent для читабельности:

json_data = json.dumps(data, indent=4)


2️⃣ Сортировка ключей

Для сортировки ключей используйте sort_keys=True:

json_data = json.dumps(data, sort_keys=True)


3️⃣ Декодирование больших чисел

Используйте parse_int и parse_float для контроля обработки чисел:

json.loads('{"big_number": 12345678901234567890}', parse_int=lambda x: int(x))


Если было полезно, ставь 🔥


🐍 Ghostly Python | #гайды
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍62
💻 Скрипт для мониторинга нагрузки сервера с использованием psutil

Для создания такого скрипта, нам потребуется библиотека — psutil. С её помощью можно отслеживать загрузку процессора, использование памяти, работу дисков и сети.

⚙️ Пример скрипта

import psutil
import time

def monitor_server():
print("Мониторинг сервера...")
print("-" * 40)

while True:
# Загрузка процессора
cpu_usage = psutil.cpu_percent(interval=1)
print(f"Загрузка CPU: {cpu_usage}%")

# Использование памяти
memory = psutil.virtual_memory()
print(f"Память: {memory.percent}% использовано ({memory.used / 1e+6:.2f} MB из {memory.total / 1e+6:.2f} MB)")

# Использование дисков
disk = psutil.disk_usage('/')
print(f"Диск: {disk.percent}% использовано ({disk.used / 1e+9:.2f} GB из {disk.total / 1e+9:.2f} GB)")

# Загрузка сети
net = psutil.net_io_counters()
print(f"Сеть: Отправлено {net.bytes_sent / 1e+6:.2f} MB, Получено {net.bytes_recv / 1e+6:.2f} MB")

print("-" * 40)
time.sleep(5) # Интервал обновления (в секундах)

# Запуск мониторинга
monitor_server()


📌 Что делает этот скрипт?

— Измеряет процент использования всех ядер.
— Показывает, сколько памяти занято и свободно.
— Оценивает использование главного раздела /.
— Выводит объём переданных и полученных данных.

✔️ Установка библиотеки

pip install psutil


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

🐍 Ghostly Python | #скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
👩‍💻 Python: неочевидное и вероятное

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

🖥 Перейти к статье

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🔥 Подборка лучших библиотек и фреймворков Python для любых задач.

📂 Сохраняем


🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥72
📱 Фишка: Декораторы с аргументами для настройки поведения

Декораторы можно делать настраиваемыми, передавая параметры в сам декоратор. Это позволяет динамически изменять поведение функций.

⚙️ Пример

Создадим декоратор, который повторяет выполнение функции заданное количество раз:

def repeat(n):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(n):
func(*args, **kwargs)
return wrapper
return decorator

@repeat(3) # Выполнится 3 раза
def say_hello():
print("Привет!")

say_hello()


🔜 Вывод:

Привет!
Привет!
Привет!


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

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


🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤‍🔥3
📖 Python для начинающих. Учимся программировать с помощью мини-игр и загадок

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

🗄 Скачать PDF из архива

🐍 Ghostly Python | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
📱 Бот-парсер маркетплейса на Python

В этой статье автор показывает один из методов парсинга на Python на примере маркетплейса Wildberries.

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

📌 В проекте будут использоваться следующие библиотеки:

🟢 requests — для парсинга данных API.
🟢 aiogram 3.10.0 — одна из самых популярных библиотек для разработки telegram ботов.

🖥 Перейти к статье

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
👩‍💻 Python Roadmap — подробный гид для изучения Python, подходящий для новичков и продвинутых разработчиков.

📌 Что внутри:

🟢 Полный список тем от основ синтаксиса до продвинутых концепций, включая ООП, асинхронность и многопоточность.
🟢 Рекомендации по библиотекам и фреймворкам.
🟢 Советы по изучению Python для веб-разработки, анализа данных, машинного обучения и DevOps.
🟢 Ссылки на полезные ресурсы и документацию.

📱 Ссылка на репозиторий

Кто хочет структурировать свое обучение Python — сохраняйте 👍


🐍 Ghostly Python | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
🖼️ Библиотека: PyFilesystem2

PyFilesystem — это библиотека для работы с файловыми системами через единый API. Она позволяет взаимодействовать с локальными и удаленными файловыми системами, архивами, облачными хранилищами и т.д.

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

⚙️ Пример использования

from fs import open_fs

# Работа с локальной файловой системой
fs = open_fs('.')

# Создание файла
fs.writetext('example.txt', 'Привет, PyFilesystem!')

# Чтение файла
content = fs.readtext('example.txt')
print(content)

# Просмотр списка файлов в директории
for path in fs.listdir('/'):
print(path)

# Работа с ZIP-архивом
zip_fs = open_fs('zip://example.zip', writeable=True)
zip_fs.writetext('file_in_zip.txt', 'Это внутри архива.')


PyFilesystem значительно упрощает работу с файлами на различных хранилищах и системах.

✔️ Установка

pip install fs


➡️ Ссылка на документацию

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🥰3
🔻 Объединение словарей в Python

Допустим, у вас есть два словаря и вы хотели бы легко объединить их в один. Для этого вы можете использовать нотацию ** для **kwargs-подобных объектов, чтобы удобно их объединить.

⚙️ Пример:

dict1 = {"A": 10, "B": 20, "C": 30}
dict2 = {"X": 100, "Y": 200, "Z": 300}

dict3 = {**dict1, **dict2}
print(dict3)


✍️ Вывод:

{'A': 10, 'B': 20, 'C': 30, 'X': 100, 'Y': 200, 'Z': 300}


🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥73