Справочник Программиста
6.36K subscribers
1.29K photos
376 videos
64 files
1.62K links
По рекламе - @it_start_programmer
Мои курсы - @courses_from_it_start_bot
Сайт - https://it-start.online/
YouTube - https://www.youtube.com/@it_start
Реклама на бирже - https://telega.in/c/programmersGuide_1

Предложить идею: @it_start_suggestion_bot
Download Telegram
📄 Библиотека Docxtpl в Python

Библиотека Docxtpl используется для генерации и модификации документов в формате .docx на основе шаблонов.

Она построена поверх библиотеки python-docx и предоставляет удобные инструменты для создания документов с динамическим содержимым, заменяя переменные внутри шаблонов на реальные данные.

Основные возможности библиотеки:
🔵Замена переменных в тексте: Позволяет вставлять значения переменных в текстовые поля документа.
🔵Обработка циклов и условий: Возможность создавать шаблоны с циклами и условиями для динамического добавления контента.
🔵Вставка изображений: Поддерживается вставка изображений на основе шаблонов.
🔵Создание таблиц: Позволяет генерировать таблицы с динамическим содержимым.
🔵Поддержка стилей: Позволяет применять стили к тексту и другим элементам документа.

➡️Установка библиотеки: pip install docxtpl

Пример кода:
from docxtpl import DocxTemplate

# Загрузка шаблона
doc = DocxTemplate("pattern.docx")

# Данные для замены
context = {
'name': 'Иван Иванович',
'date': '12.06.2024',
'items': [
{'name': 'Товар 1', 'price': '100 руб.'},
{'name': 'Товар 2', 'price': '200 руб.'},
]
}

# Рендеринг документа с данными
doc.render(context)

# Сохранение документа
doc.save("document.docx")


На картинках показан .docx-шаблон и результат выполнения кода.

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4❤‍🔥2
📺 Генерация фейковых данных человека на Python

В данном shorts напишем код для генерации фейковых данных о человеке на Python (не Faker).

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍3🔥2
Справочник Программиста
📺 Генерация фейковых данных человека на Python В данном shorts напишем код для генерации фейковых данных о человеке на Python (не Faker). ➡️Справочник Программиста. Подписаться
💻 Коды для генерации фейковых данных на Python

Примеров кода довольно много, поэтому придётся разделить на несколько постов.

➡️Установка необходимой библиотеки: pip install mimesis

Генерация случайных персональных данных
from mimesis import Person
from mimesis.enums import Gender
from mimesis.locales import Locale

person = Person(Locale.RU)

print("Имя:", person.name())
print("Фамилия:", person.surname())
print("Пол:", person.gender())
print("Дата рождения:", person.birthdate())
print("Почта:", person.email())
print("Телефон:", person.telephone())

# Генерация данных с указанием пола
print("Мужское имя:", person.name(gender=Gender.MALE))


Генерация случайного адреса
from mimesis import Address

address = Address(locale="ru")

# Генерация случайных данных
print("Страна:", address.country())
print("Город:", address.city())
print("Улица:", address.street_name())
print("Дом:", address.street_number())
print("Почтовый индекс:", address.postal_code())


Генерация случайного текста
from mimesis import Text

text = Text(locale="ru")

print("Случайное слово:", text.word())
print("Случайное предложение:", text.sentence())
print("Случайный абзац:", text.text(quantity=1))


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍4❤‍🔥3
🔍 Библиотека Tesserocr в Python

Библиотека Tesserocr предоставляет интерфейс для работы с библиотекой OCR (распознавание текста) Tesseract.

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

Основные возможности библиотеки:
🔵Интерфейс C++ API Tesseract: Библиотека напрямую связывается с Tesseract через его C++ API, что обеспечивает высокую производительность и более гибкие возможности по сравнению с вызовом командной строки Tesseract.
🔵Работа с изображениями: Поддерживает работу с изображениями через PIL (Python Imaging Library) или напрямую с numpy массивами, что позволяет легко подготавливать изображения для распознавания.
🔵Настройка параметров Tesseract: Позволяет настраивать различные параметры Tesseract, такие как язык распознавания, варианты предобработки изображений и другие параметры конфигурации.
🔵Поддержка регионов интереса: Присутствует возможность указать конкретные области изображения, которые нужно распознавать, что полезно, если текст находится только в определенных частях изображения.

➡️Установка библиотеки: pip install tesserocr

📱 Репозиторий

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3🔥3
Справочник Программиста
💻 Коды для генерации фейковых данных на Python Примеров кода довольно много, поэтому придётся разделить на несколько постов. ➡️Установка необходимой библиотеки: pip install mimesis Генерация случайных персональных данных from mimesis import Person from…
💻 Коды для генерации фейковых данных на Python часть 2

➡️Установка необходимой библиотеки: pip install mimesis

Генерация случайных платёжных данных
from mimesis import Payment

payment = Payment()

print("Номер кредитной карты:", payment.credit_card_number())
print("Дата окончания срока действия кредитной карты:", payment.credit_card_expiration_date())
print("CVV:", payment.cvv())
print("Сеть кредитной карты:", payment.credit_card_network())
print("Адрес Ethereum:", payment.ethereum_address())
print("PayPal:", payment.paypal())
print("Адрес Bitcoin:", payment.bitcoin_address())
print("Владелец кредитной карты:", payment.credit_card_owner())
print("CID:", payment.cid())


Генерация случайных временных данных
from mimesis import Datetime

datetime = Datetime()

print("Случайная дата:", datetime.date())
print("Случайное время:", datetime.time())
print("Случайный месяц:", datetime.month())
print("Случайный год:", datetime.year())
print("Случайный день недели:", datetime.day_of_week())


Генерация случайных данных по разработке
from mimesis import Development

development = Development()

print("Стадия разработки:", development.stage())
print("Характеристика надёжности ПО (ility):", development.ility())
print("Лицензия ПО:", development.software_license())
print("Версия с использованием календарной версии (calver):", development.calver())
print("Версия ПО:", development.version())
print("Язык программирования:", development.programming_language())


Генерация случайных общих данных
from mimesis import Generic

generic = Generic()

print("Случайное имя:", generic.person.name())
print("Случайный адрес:", generic.address.address())
print("Случайный текст:", generic.text.text())
print("Случайный файл:", generic.file.file_name())
print("Случайная дата:", generic.datetime.date())


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤‍🔥3🔥3😁1
Библиотека Dramatiq в Python

Библиотека Dramatiq - это асинхронная система очередей задач (task queue) для разработки и управления фоновыми задачами в приложениях.

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

Основные особенности библиотеки:
🔵Асинхронность: Поддерживает асинхронное выполнение задач, что позволяет обрабатывать множество задач параллельно.
🔵Простота использования: Имеет интуитивно понятный API, что делает ее доступной для разработчиков любого уровня.
🔵Поддержка брокеров сообщений: Поддерживает несколько брокеров сообщений, включая RabbitMQ и Redis, для обмена сообщениями между компонентами системы.
🔵Расширяемость: Благодаря своей модульной архитектуре, Dramatiq легко расширяется с помощью плагинов и middleware.

➡️Установка библиотеки: pip install dramatiq

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤‍🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Код для мониторинга скорости сетевого трафика в реальном времени на Python

Для мониторинга скорости сетевого трафика в коде используется модуль psutil.

Функция net_io_counters() из модуля psutil предоставляет информацию о сетевом вводе/выводе (I/O) в системе.

➡️Установка модуля: pip install psutil

import psutil
import time


# Функция для мониторинга скорости сетевого трафика
def get_net_io():
# Получаем статистику сетевого ввода-вывода
io = psutil.net_io_counters()
# Возвращаем количество отправленных и полученных байт
return io.bytes_sent, io.bytes_recv


# Получаем начальные значения отправленных и полученных байт
prev_sent, prev_recv = get_net_io()

try:
# Бесконечный цикл для постоянного мониторинга
while True:
# Задержка на 1 секунду
time.sleep(1)
# Получаем текущие значения отправленных и полученных байт
sent, recv = get_net_io()
# Вычисляем и выводим скорость передачи и приема данных в KB/s
print(f"Скорость передачи: {(sent - prev_sent) / 1024:.2f} KB/s, Скорость приема: {(recv - prev_recv) / 1024:.2f} KB/s")
# Обновляем значения отправленных и полученных байт для следующего цикла
prev_sent, prev_recv = sent, recv
except KeyboardInterrupt:
# Обрабатываем прерывание программы (Ctrl+C)
print("Остановка мониторинга.")


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤‍🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
📊 Библиотека Altair в Python

Библиотека Altair предназначена для визуализации данных на Python.

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

Основные особенности библиотеки:
🔵Декларативный стиль: Использует декларативный стиль, что означает, что вы описываете, что вы хотите видеть, а не как это нарисовать.
🔵Интеграция с Pandas: Легко работает с DataFrame из Pandas, что позволяет быстро создавать графики на основе табличных данных.
🔵Поддержка интерактивных визуализаций: Позволяет создавать интерактивные графики, которые можно масштабировать, фильтровать и выделять.
🔵Основана на Vega и Vega-Lite: Строится на базе спецификаций визуализации данных Vega и Vega-Lite, что делает её гибкой и расширяемой.
🔵Минимум кода: Для создания сложных визуализаций требуется меньше кода по сравнению с другими библиотеками, такими как Matplotlib или Seaborn.

➡️Установка библиотеки: pip install altair

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤‍🔥3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Код для изменения размеров окна на Python

Для изменения размеров окна в коде используется библиотека PyGetWindow.

Функция getWindowsWithTitle() позволяет получить окно, а метод resizeTo() - изменить его ширину и высоту.

➡️Установка модуля: pip install PyGetWindow

import pygetwindow as gw

# Получаем окно, размеры которого нужно изменить
window = gw.getWindowsWithTitle('Название окна')[0]
# Изменяем размер окна на заданную ширину и высоту
window.resizeTo(800, 600)


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤‍🔥3🔥3
👩‍💻 Библиотека paramiko в Python

Библиотека paramiko предназначена для работы с SSH-2.

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

Основные возможности библиотеки:
🔵Управление SSH-соединениями: Позволяет устанавливать защищенные соединения с удаленными серверами по SSH. Это включает аутентификацию с использованием пароля или ключей.
🔵Выполнение удаленных команд: Позволяет выполнять команды на удаленных серверах и получать их вывод, что полезно для автоматизации административных задач.
🔵Передача файлов: Поддерживает протокол SFTP, что позволяет загружать и скачивать файлы с удаленных серверов.
🔵Туннелирование SSH: Поддерживает создание SSH-туннелей, что может быть полезно для безопасной передачи данных через незащищенные сети.

Пример использования paramiko для подключения к удаленному серверу, выполнения команды и получения результата
import paramiko

# Создание SSH клиента
client = paramiko.SSHClient()

# Автоматическое добавление неизвестных ключей сервера
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# Подключение к серверу
client.connect('hostname', username='user', password='passwd')

# Выполнение команды
stdin, stdout, stderr = client.exec_command('ls -l')

# Получение и вывод результата команды
print(stdout.read().decode())

# Закрытие соединения
client.close()


➡️Установка библиотеки: pip install paramiko

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤‍🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Библиотека UltraJSON в Python

Библиотека ujson предназначена для кодирования и декодирования JSON.

Она значительно быстрее стандартной библиотеки json в Python, т.к. написана на языке C (в прикреплённом видео сравнивается их скорость).

Пример кода с использованием UltraJSON
import ujson as json

# Кодирование JSON
data = {"name": "Anna", "age": 25, "city": "Novosibirsk"}
json_str = json.dumps(data)
print(json_str) # Вывод: {"name":"Anna","age":25,"city":"Novosibirsk"}

# Декодирование JSON
json_str = '{"name":"Anna","age":25,"city":"Novosibirsk"}'
data = json.loads(json_str)
print(data) # Вывод: {'name': 'Anna', 'age': 25, 'city': 'Novosibirsk'}


➡️Установка библиотеки: pip install ujson

📱 Репозиторий

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6👍4🔥4
Справочник Программиста
💻 Коды для генерации фейковых данных на Python часть 2 ➡️Установка необходимой библиотеки: pip install mimesis Генерация случайных платёжных данных from mimesis import Payment payment = Payment() print("Номер кредитной карты:", payment.credit_card_number())…
💻 Коды для генерации фейковых данных на Python часть 3

Вижу вам очень понравилась эта тема, поэтому держите последнюю порцию кода по ней 👀

➡️Установка необходимой библиотеки: pip install mimesis

Генерация фейковых интернет-данных
from mimesis import Internet

internet = Internet()

print(f'Тип контента: {internet.content_type()}')
print(f'HTTP-метод: {internet.http_method()}')
print(f'IPv4 адрес: {internet.ip_v4()}')
print(f'IPv4 адрес с портом: {internet.ip_v4_with_port()}')
print(f'IPv6 адрес: {internet.ip_v6()}')
print(f'MAC адрес: {internet.mac_address()}')
print(f'Slug: {internet.slug()}')
print(f'Домен верхнего уровня: {internet.top_level_domain()}')
print(f'URL: {internet.url()}')
print(f'User-Agent: {internet.user_agent()}')
print(f'Строка запроса: {internet.query_string()}')


Генерация фейковых числовых данных
from mimesis import Numeric

numeric = Numeric()

print(f'Целое число: {numeric.integer_number()}')
print(f'Список целых чисел: {numeric.integers(start=1, end=100, n=5)}')
print(f'Число с плавающей точкой: {numeric.float_number()}')
print(f'Список чисел с плавающей точкой: {numeric.floats(start=0.1, end=10.0, n=5)}')
print(f'Комплексное число: {numeric.complex_number()}')
print(f'Список комплексных чисел: {numeric.complexes(start_real=0, end_real=1, start_imag=0, end_imag=1)}')
print(f'Число с плавающей точкой в диапазоне: {numeric.float_number(start=0.1, end=10.0)}')
print(f'Десятичное число: {numeric.decimal_number(start=0.1, end=10.0)}')
print(f'Список десятичных чисел: {numeric.decimals(start=0.1, end=10.0, n=5)}')
print(f'Матрица: {numeric.matrix(m=5, n=5)}')


Генерация фейковых транспортных данных
from mimesis import Transport

transport = Transport()

print(f'Номер автомобиля: {transport.car()}')
print(f'Марка автомобиля: {transport.manufacturer()}')
print(f'Регистрационный знак: {transport.vehicle_registration_code()}')
print(f'Модель самолёта: {transport.airplane()}')


Генерация фейковых путей и директорий
from mimesis import Path

path = Path()

print(f'Каталог: {path.root()}')
print(f'Домашний каталог: {path.home()}')
print(f'Каталог пользователя: {path.user()}')
print(f'Каталог пользователей: {path.users_folder()}')
print(f'Каталог разработки: {path.dev_dir()}')
print(f'Каталог проекта: {path.project_dir()}')


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5❤‍🔥2
Логирование в Python

В данной статье узнаем что такое логирование и как с ним работать в Python.

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤‍🔥2👍2🤨1
📺 Анонимизация личных данных в Python

В данном shorts напишем код для анонимизации данных на Python.

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤‍🔥3😁1
Справочник Программиста
📺 Анонимизация личных данных в Python В данном shorts напишем код для анонимизации данных на Python. ➡️Справочник Программиста. Подписаться
Библиотека scrubadub в Python

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

Основные возможности библиотеки:
🔵Поиск личных данных: Поддержка различных детекторов, которые могут обнаруживать имена, адреса, номера телефонов, электронные почты и т.д.
🔵Замена личных данных: После обнаружения личных данных scrubadub может заменять их на нейтральные плейсхолдеры, например, {{NAME}}, {{EMAIL}}.
🔵Расширяемость: Можно добавлять собственные детекторы или использовать существующие, чтобы обрабатывать специфические виды данных.
🔵Поддержка разных языков: Может работать с текстами на разных языках.

Пример кода
import scrubadub

# Пример текста с личными данными
text = "Вот моя почта - iavn@example.com и мой номер телефона - +7 (999) 999-99-99"

# Анонимизация текста
cleaned_text = scrubadub.clean(text)

print(cleaned_text)


➡️Установка библиотеки: pip install scrubadub

📱 Репозиторий

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤‍🔥3🔥2
Справочник Программиста
🍽Код для генерации идей ужина на Python Нашёл данный код на просторах интернета, почти весь пришлось переписать и добавить перевод (хотя мне кажется лучше его убрать и читать по-английски))) Для обращения к API в коде используется библиотека requests, а…
This media is not supported in your browser
VIEW IN TELEGRAM
Код для генерации советов на Python

Нашёл ещё один интересный API, благодаря которому можно генерировать советы, если их так можно назвать 🤔

Для обращения к API в коде используется библиотека requests, а для перевода на русский - googletrans.

➡️Установка библиотек: pip install requests googletrans==3.1.0a0

import requests
from googletrans import Translator


def fetch_advice():
translator = Translator()

try:
response = requests.get("https://api.adviceslip.com/advice")
response.raise_for_status() # Проверка на успешный статус ответа
advice_data = response.json()
advice_text = advice_data["slip"]["advice"]

# Переводим текст совета на русский язык
translated_advice = translator.translate(advice_text, dest='ru')

# Выводим переведенный текст совета
print("\nСовет:", translated_advice.text)
except requests.exceptions.RequestException as e:
# Обработка исключений при выполнении запроса
print("\nОшибка: Не удалось получить совет. Пожалуйста, проверьте ваше интернет-соединение.")
print("Детали ошибки:", e)
except KeyError as e:
# Обработка исключений при доступе к данным JSON
print("\nОшибка: Неправильный формат ответа API.")
print("Детали ошибки:", e)
except Exception as e:
# Обработка других исключений
print("\nПроизошла непредвиденная ошибка.")
print("Детали ошибки:", e)


def main():
while True:
user_input = input("\nНажмите 'Enter' для получения совета или введите 'exit' для выхода: ").strip().lower()
if user_input == "exit":
print("Выход из программы. До свидания!")
break
fetch_advice()


if __name__ == "__main__":
main()


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍4❤‍🔥2😁1
Полезные ссылки

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

📱 YouTube-канал
📱 Сайт со статьями по Python

📱 Мой основной телеграм-канал (этот) - @programmersGuide_1
📱 Мой телеграм-канал с викторинами по Python (рано или поздно возрожу)) - @python_quizzes_tasks

📱 Приобрести мои курсы можно у бота (до конца июня скидки на всё 50%) - @courses_from_it_start_bot
📱 По написанию кода на заказ и сотрудничеству - @it_start_programmer

📱 Дзен
📱 TikTok
📱 Boosty (когда-нибудь возрожу)
💰Поддержать меня
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤‍🔥4
Библиотека SDV в Python

Библиотека SDV (Synthetic Data Vault) предназначена для генерации синтетических данных.

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

Основные особенности библиотеки:
🔵Синтетические данные: Позволяет генерировать синтетические наборы данных, которые имеют такие же статистические свойства, как и исходные данные.
🔵Модели данных: Поддерживает несколько моделей для создания синтетических данных, включая GAN (Generative Adversarial Networks), Bayesian Networks и другие методы.
🔵Обработка различных типов данных: Может работать с различными типами данных, такими как числовые, категориальные, временные ряды и т.д.
🔵Конфиденциальность данных: Поскольку синтетические данные не содержат реальных данных, они могут использоваться в ситуациях, где важно сохранить конфиденциальность информации.
🔵Генерация данных для сложных структур: Позволяет создавать синтетические данные для сложных структур, таких как базы данных с несколькими связанными таблицами.

Пример кода. Т.к. пример на скриншоте слишком большой, продублирую его без комментариев в виде кода. Не переписывать же с картинки 🤔
from sdv.datasets.demo import download_demo
from sdv.evaluation.single_table import run_diagnostic
from sdv.single_table import GaussianCopulaSynthesizer
from sdv.evaluation.single_table import evaluate_quality
from sdv.evaluation.single_table import get_column_plot

real_data, metadata = download_demo(
modality='single_table',
dataset_name='fake_hotel_guests'
)

synthesizer = GaussianCopulaSynthesizer(metadata)
synthesizer.fit(real_data)
synthetic_data = synthesizer.sample(num_rows=500)
synthetic_data.head()

diagnostic = run_diagnostic(
real_data=real_data,
synthetic_data=synthetic_data,
metadata=metadata
)

quality_report = evaluate_quality(
real_data,
synthetic_data,
metadata
)

quality_report.get_details('Column Shapes')

fig = get_column_plot(
real_data=real_data,
synthetic_data=synthetic_data,
column_name='room_rate',
metadata=metadata
)

fig.show()


➡️Установка библиотеки: pip install sdv

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤‍🔥4🔥3😁2
Передача файлов с использованием SFTP на Python

Для передачи файлов с использованием SFTP в коде используется библиотека paramiko.

➡️Установка модуля: pip install paramiko

import paramiko

# Создание SSH клиента
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# Подключение к серверу
client.connect('hostname', username='user', password='passwd')

# Создание SFTP сессии
sftp = client.open_sftp()

# Загрузка файла на сервер
sftp.put('local_file.txt', 'remote_file.txt')

# Скачивание файла с сервера
sftp.get('remote_file.txt', 'local_file.txt')

# Закрытие SFTP сессии и SSH соединения
sftp.close()
client.close()


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4❤‍🔥2