Forwarded from Python 🇺🇦
Друзі, нагадуємо про чат для ком'юніті Python ентузіастів!
Додавайтесь, якщо у вас виникають запитання, або ж ви хочете поділитися своїми думками стосовно тої чи іншої теми.
Давайте спілкуватися!
Додавайтесь, якщо у вас виникають запитання, або ж ви хочете поділитися своїми думками стосовно тої чи іншої теми.
Давайте спілкуватися!
Forwarded from Python 🇺🇦
Редагуємо відео
Пакет
Розібратися з пакетом не складно, базове використання показано на зображенні. У прикладі ми відкриваємо два відео, склеюємо в одне, обрізаємо отриманий кліп, зменшуємо гучність звуку і в кінці зберігаємо результат.
Тут ще важливо відзначити, що запуск та виконання скриптів з обробкою відео може зайняти досить великий час.
Такий пакет корисний у випадках, коли потрібно обробити дуже багато відео за одним і тим же принципом.
#practice // Python 🇺🇦
Пакет
moviepy дозволяє обрізати та склеювати відео, додавати відеоефекти й редагувати звук.Розібратися з пакетом не складно, базове використання показано на зображенні. У прикладі ми відкриваємо два відео, склеюємо в одне, обрізаємо отриманий кліп, зменшуємо гучність звуку і в кінці зберігаємо результат.
Тут ще важливо відзначити, що запуск та виконання скриптів з обробкою відео може зайняти досить великий час.
Такий пакет корисний у випадках, коли потрібно обробити дуже багато відео за одним і тим же принципом.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Завантажуємо вебсайти повністю
Максимально простий, але потужний пакет
Функція
А ось
Але тут треба бути акуратнішим, подібне рекурсивне завантаження може надіслати багато запитів до сервера і сильно навантажити його.
#practice // Python 🇺🇦
Максимально простий, але потужний пакет
pywebcopy допоможе вам клонувати окремі веб-сторінки або навіть цілі сайти.Функція
save_webpage завантажує сторінку за вказаним посиланням, в аргументи також можна передати шлях, куди зберегти результат.А ось
save_website дає можливість завантажити весь сайт рекурсивно. Наприклад, якщо сайт є блогом, то скрипт скаче всі статті, які є на сайті.Але тут треба бути акуратнішим, подібне рекурсивне завантаження може надіслати багато запитів до сервера і сильно навантажити його.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Спрощена робота з JSON
Є один цікавий пакет
Основні приклади використання показані на зображенні. Метод
Взагалі можливостей у пакета достатньо, тому він гідний вивчення та застосування у проектах. Докладніше можна почитати в документації.
#practice // Python 🇺🇦
Є один цікавий пакет
JMESpath, який дозволяє декларативно вказати, як витягувати елементи з документа JSON.Основні приклади використання показані на зображенні. Метод
search приймає патерн, яким потрібно витягти дані, і навіть словник (схожий на JSON).Взагалі можливостей у пакета достатньо, тому він гідний вивчення та застосування у проектах. Докладніше можна почитати в документації.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Отримуємо дані про систему
Кросплатформова бібліотека
Якщо говорити про практичне застосування,
Крім звичних Windows, MacOS та Linux, бібліотека також підтримує системи FreeBSD, OpenBSD, NetBSD, Sun Solaris та AIX.
#practice // Python 🇺🇦
Кросплатформова бібліотека
psutil дозволяє отримувати інформацію про процесор, пам'ять, диск, мережу, датчики і запущені процеси в системі. Приклади базового використання показані на зображенні.Якщо говорити про практичне застосування,
psutil корисний в основному для моніторингу системи, обмеження ресурсів процесів та управління запущеними процесами.Крім звичних Windows, MacOS та Linux, бібліотека також підтримує системи FreeBSD, OpenBSD, NetBSD, Sun Solaris та AIX.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
infinity
Взагалі
Рядкові літерали '
Такий прийом може бути корисним у коді, де потрібно зберігати в змінній найбільше чи найменше числове значення для подальшого порівняння.
#practice // Python 🇺🇦
Взагалі
float є дуже цікавим типом даних і не перестає дивувати своїми особливостями. Про значення Not a Number ми вже писали раніше, а сьогодні поговоримо про infinity.Рядкові літерали '
inf' та 'infinity' можна конвертувати в float, і в результаті виходить значення нескінченності. Для негативної "нескінченності" необхідно поставити знак мінуса перед словом.Такий прийом може бути корисним у коді, де потрібно зберігати в змінній найбільше чи найменше числове значення для подальшого порівняння.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Надсилаємо універсальні повідомлення
Вашій увазі цікавий пакет
У функцію
Якщо не впевнені, які аргументи потрібно передати для надсилання повідомлення, то можете подивитися їх через атрибут
Наприклад, для Telegram потрібно передати токен бота, айді чату і саме повідомлення. У випадку з поштою необхідно вказати логін, пароль, адресата та повідомлення.
#practice // Python 🇺🇦
Вашій увазі цікавий пакет
notifiers, який дозволяє відправляти повідомлення на пошту через Telegram бота, в Слек і ще багато куди. Всього доступно 16 провайдерів, детальніше про них у документації.У функцію
get_notifier передаємо назву провайдера у вигляді рядка та отримуємо об'єкт, з яким можна працювати. Надіслати повідомлення можна за допомогою універсального методу notify.Якщо не впевнені, які аргументи потрібно передати для надсилання повідомлення, то можете подивитися їх через атрибут
required у створеного об'єкта.Наприклад, для Telegram потрібно передати токен бота, айді чату і саме повідомлення. У випадку з поштою необхідно вказати логін, пароль, адресата та повідомлення.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Використання zip
Функція
👀 Відео, де автор докладно описує роботу цієї функції на конкретних прикладах.
#practice // Python 🇺🇦
Функція
zip() приймає елементи, об'єднує їх в кортеж і повертає його. Якщо передані ітератори мають різну довжину, ітератор із найменшою кількістю елементів визначає довжину нового ітератора. 👀 Відео, де автор докладно описує роботу цієї функції на конкретних прикладах.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Відловлюємо помилки за допомогою assert
Інструкція
Якщо виконати інструкцію
Однак не потрібно намагатися обробити виняток
У прикладі ми перевірили, чи є переданий аргумент числовим типом даних. Якщо ні, то буде викликано виняток та виведено вказане повідомлення.
#practice // Python 🇺🇦
Інструкція
assert приймає логічний вираз та необов'язкове повідомлення. Вона використовується для перевірки типів, значень аргументу та виведення функції, а також для налагодження, оскільки зупиняє програму у разі помилки.Якщо виконати інструкцію
assert з логічним виразом, результат якого дорівнює True, нічого не станеться. Але у випадку з False буде згенеровано виняток AssertionError.Однак не потрібно намагатися обробити виняток
AssertionError блоком try-except. У такому разі assert втрачає свій сенс.У прикладі ми перевірили, чи є переданий аргумент числовим типом даних. Якщо ні, то буде викликано виняток та виведено вказане повідомлення.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Розділюємо цілі числа
Важко візуально розрізнити цілі числа подібні
Але Python дозволяє використовувати нижнє підкреслення як роздільник для покращення читабельності.
Наприклад,
#practice // Python 🇺🇦
Важко візуально розрізнити цілі числа подібні
10000000 та 100000000. Використовувати коми, як в англійській мові, не вийде.Але Python дозволяє використовувати нижнє підкреслення як роздільник для покращення читабельності.
Наприклад,
1_000_000 інтерпретуватиметься як ціле число 1000000.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Дізнаємося кодування тексту
Думаю, у всіх були ситуації, коли ви відкрили файл або отримали відповідь від сервера, а всередині виявлявся набір дивних символів у незрозумілому кодуванні.
Пакет
У прикладі на картинці ми отримали відповідь на запит до сервера, взяли його вміст і перевірили кодування через цей метод.
#practice // Python 🇺🇦
Думаю, у всіх були ситуації, коли ви відкрили файл або отримали відповідь від сервера, а всередині виявлявся набір дивних символів у незрозумілому кодуванні.
Пакет
chardet був створений для роботи з кодуванням. Його метод detect видає передбачуване кодування з точністю від 0 до 1.У прикладі на картинці ми отримали відповідь на запит до сервера, взяли його вміст і перевірили кодування через цей метод.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Тимчасові файли
У стандартній бібліотеці Python є модуль
Функція
Створений тимчасовий файл буде видалено автоматично після закриття файлу або при виході з контекстного менеджера.
Також інші процеси та програми не зможуть отримати доступ до цього тимчасового файлу.
#practice // Python 🇺🇦
У стандартній бібліотеці Python є модуль
tempfile, який містить класи та методи для коректної роботи з тимчасовими файлами та директоріями.Функція
TemporaryFile створює тимчасовий файл у системній директорії та повертає файлоподібний об'єкт.Створений тимчасовий файл буде видалено автоматично після закриття файлу або при виході з контекстного менеджера.
Також інші процеси та програми не зможуть отримати доступ до цього тимчасового файлу.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Підключаємося до сервера по ssh
Пакет
Використовувати модуль досить просто, приклад основних методів на зображенні вище. До речі, цікавий факт, Paramiko - це поєднання слів "параноїк" та "друг" мовою есперанто.
Встановлюється пакет звичним чином через пакетний менеджер pip. Документацію можна переглянути тут.
#practice // Python 🇺🇦
Пакет
paramiko дозволяє встановлювати з'єднання з віддаленими машинами за протоколом SSH2 і робити там ті самі операції, якби ви підключалися через, наприклад, утиліту ssh на лінуксі.Використовувати модуль досить просто, приклад основних методів на зображенні вище. До речі, цікавий факт, Paramiko - це поєднання слів "параноїк" та "друг" мовою есперанто.
Встановлюється пакет звичним чином через пакетний менеджер pip. Документацію можна переглянути тут.
#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Завантажуємо відео з YouTube
Пакет
Для роботи нам необхідно створити об'єкт класу YouTube. Крім посилання на відео в конструктор можна передати у якості параметрів функції для обробки прогресу завантаження та завершення.
Більшість відео на ютубі не мають аудіодоріжки на потоках з високою роздільною здатністю, понад 720p — це пов'язано з технологією передачі DASH, яку використовує сервіс. Про вирішення цього нюансу поговоримо трішки пізніше.
На картинці показано, як відфільтрувати потоки з прогресивною передачею і вибрати з отриманого списку з максимальною доступною роздільною здатністю до 720p.
Для завантаження вибраного потоку використовуємо функцію
#practice // Python 🇺🇦
Пакет
pytube надає всю необхідну функціональність для завантаження відео з YouTube, а також для збирання всієї інформації про нього.Для роботи нам необхідно створити об'єкт класу YouTube. Крім посилання на відео в конструктор можна передати у якості параметрів функції для обробки прогресу завантаження та завершення.
Більшість відео на ютубі не мають аудіодоріжки на потоках з високою роздільною здатністю, понад 720p — це пов'язано з технологією передачі DASH, яку використовує сервіс. Про вирішення цього нюансу поговоримо трішки пізніше.
На картинці показано, як відфільтрувати потоки з прогресивною передачею і вибрати з отриманого списку з максимальною доступною роздільною здатністю до 720p.
Для завантаження вибраного потоку використовуємо функцію
download(), в функцію можна передати у якості параметрів шлях до директорії для збереження та ім'я файлу.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Об'єднуємо відео та аудіо потоки
Через технологію потокової передачі DASH (Dynamic Adaptive Streaming over HTTP), яка використовується youtube, ми не можемо отримати відразу відео в потрібній якості зі звуковою доріжкою через її відсутність у потоці.
Як рішення ми можемо окремо забрати аудіо та відео та об'єднати за допомогою утиліти ffmpeg. Для цього обираємо потрібні потоки
#practice // Python 🇺🇦
Через технологію потокової передачі DASH (Dynamic Adaptive Streaming over HTTP), яка використовується youtube, ми не можемо отримати відразу відео в потрібній якості зі звуковою доріжкою через її відсутність у потоці.
Як рішення ми можемо окремо забрати аудіо та відео та об'єднати за допомогою утиліти ffmpeg. Для цього обираємо потрібні потоки
video та audio, після чого передаємо url'и в команду для ініціювання створення процесу для скачування та об'єднання потоків за допомогою ffmpeg.#practice // Python 🇺🇦
Forwarded from Python 🇺🇦
Працюємо з буфером обміну
Тут все просто: є пакет
У цьому пакеті є дві основні функції —
Таким чином, можна прямо через код копіювати виведення програми у буфер обміну замість того, щоб робити це вручну.
#practice // Python 🇺🇦
Тут все просто: є пакет
pyperclip, який дозволяє відправляти текст у буфер обміну вашого комп'ютера та отримувати його звідти.У цьому пакеті є дві основні функції —
copy() та paste(), за назвою яких зрозуміло їхнє призначення.Таким чином, можна прямо через код копіювати виведення програми у буфер обміну замість того, щоб робити це вручну.
#practice // Python 🇺🇦