Модуль shutil
Очень смешное название, но библиотека является мощным инструментом для обработки файлов. В прошлом посте говорилось о модуль os. Надо учитывать, что многие задачи решить через него можно, но придется постараться.
Программисты комбинируют os и shutil для достижения наиболее красивого и эффективного кода.
shutil.copyfileobj(fsrc, fdst) - копирует один файл в другой.
shutil.copymode(fsrc, fdst) - копирует права доступа из одного файла в другой.
shutil.copystat(fsrc, fdst) - копирует дату последнего доступа и изменения из одного файла в другой.
Библиотека позволяет так же работать с архивами shutil.get_archive_formats(), чтобы узнать доступные для работы архивы.
Очень смешное название, но библиотека является мощным инструментом для обработки файлов. В прошлом посте говорилось о модуль os. Надо учитывать, что многие задачи решить через него можно, но придется постараться.
Программисты комбинируют os и shutil для достижения наиболее красивого и эффективного кода.
shutil.copyfileobj(fsrc, fdst) - копирует один файл в другой.
shutil.copymode(fsrc, fdst) - копирует права доступа из одного файла в другой.
shutil.copystat(fsrc, fdst) - копирует дату последнего доступа и изменения из одного файла в другой.
Библиотека позволяет так же работать с архивами shutil.get_archive_formats(), чтобы узнать доступные для работы архивы.
Big O
Оптимизация — вот чем приходится постоянно заниматься. Только вопрос — как оценивать скорость? Ведь программы работают с разной скоростью на разных устройствах в зависимости от сборки.
Поэтому программисты пришли к общей оценке названной Big O. К примеру, простой код перебора всех значений это O(n), где n - кол-во этих значений, потому что используется только один цикл, а если два вложенных цикла, вроде программы по распечатки таблицы умножения, то это O(n^2).
По формулам видно, что вторая намного дольше работает. А главное, чем больше элементов, тем дольше будет работать программа.
Тот же бинарный поиск O(log n), намного быстрее, но работает в отсортированном списке. При высчитывании учитывается количество проходов по данным, количество строк кода значения не играет.
На картинке предоставлен график скорости работы алгоритмов, чем меньше операций - тем лучше.
Оптимизация — вот чем приходится постоянно заниматься. Только вопрос — как оценивать скорость? Ведь программы работают с разной скоростью на разных устройствах в зависимости от сборки.
Поэтому программисты пришли к общей оценке названной Big O. К примеру, простой код перебора всех значений это O(n), где n - кол-во этих значений, потому что используется только один цикл, а если два вложенных цикла, вроде программы по распечатки таблицы умножения, то это O(n^2).
По формулам видно, что вторая намного дольше работает. А главное, чем больше элементов, тем дольше будет работать программа.
Тот же бинарный поиск O(log n), намного быстрее, но работает в отсортированном списке. При высчитывании учитывается количество проходов по данным, количество строк кода значения не играет.
На картинке предоставлен график скорости работы алгоритмов, чем меньше операций - тем лучше.
This media is not supported in your browser
VIEW IN TELEGRAM
Dribbble теперь в Telegram!
Самое крупное в мире дизайнерское сообщество зарегистрировалось в Телеграм. Теперь каждый день на этом канале будут публиковаться лучшие работы для вдохновления, иногда уроки, фрибишные исходники и инструменты.
Подписывайся: @Dribbble
Самое крупное в мире дизайнерское сообщество зарегистрировалось в Телеграм. Теперь каждый день на этом канале будут публиковаться лучшие работы для вдохновления, иногда уроки, фрибишные исходники и инструменты.
Подписывайся: @Dribbble
Модуль zipfile
Как говорилось ранее с zip может работать модуль shutil, но zipfile более многофункционален. С другой стороны он не так универсален и работает только с зипами. За все надо платить, не существует идеального способа для всего.
Для начала надо из zipfile импортировать ZipFile. И открыть файл ZipFile(file).
printdir() - вывод списка содержимого текстом для печати.
namelist() - вывод списка фалов списком.
open() - открыть файл внутри архива, далее работа проходит аналогично работе фалов.
Для практики на картинке показана программа выводящая красивый вложенный список файлов находящихся в архиве.
Больше возможностей можно узнать через help() или документацию.
Как говорилось ранее с zip может работать модуль shutil, но zipfile более многофункционален. С другой стороны он не так универсален и работает только с зипами. За все надо платить, не существует идеального способа для всего.
Для начала надо из zipfile импортировать ZipFile. И открыть файл ZipFile(file).
printdir() - вывод списка содержимого текстом для печати.
namelist() - вывод списка фалов списком.
open() - открыть файл внутри архива, далее работа проходит аналогично работе фалов.
Для практики на картинке показана программа выводящая красивый вложенный список файлов находящихся в архиве.
Больше возможностей можно узнать через help() или документацию.
This media is not supported in your browser
VIEW IN TELEGRAM
На Python можно писать всё, от веб-сайтов до искусственного интеллекта и анализа данных.
PYTHON:TODAY - маст-хэв канал, как для новичка, так и для опытных программистов. Освойте одну из самых топовых профессий в мире и работайте хоть из дома, хоть из Тайланда.
На канале вы найдете видео и текстовые трансляции уроков:
- По созданию ботов
- Приложений на смартфон
- Парсингу сайтов
- Шифрованию
- Пентестингу
- Машинному обучению и big data с нуля
Кладезь интересных проектов в одном месте - @python2day
PYTHON:TODAY - маст-хэв канал, как для новичка, так и для опытных программистов. Освойте одну из самых топовых профессий в мире и работайте хоть из дома, хоть из Тайланда.
На канале вы найдете видео и текстовые трансляции уроков:
- По созданию ботов
- Приложений на смартфон
- Парсингу сайтов
- Шифрованию
- Пентестингу
- Машинному обучению и big data с нуля
Кладезь интересных проектов в одном месте - @python2day
Модуль requests
В прошлом посте мы рассмотрели json, формат получаемый от сервера, но его как-то надо получить. В этом поможет библиотека requests, она позволяет отправлять запросы GET и POST, работать с ней просто и новичкам будет очень удобно. С помощью библиотеки просто написать парсер или работать с API какого-то сервиса.
response = requests.get(link) - чтобы отправить запрос GET по адресу. Дальше можно получить ответ в формате json, через соответствующий метод json()
Больше информации в документации, а на картинке показан результат работы API Яндекс.Карт совместно с данной библиотекой. Например, напишем программу, которая по городу будет находить область.
В прошлом посте мы рассмотрели json, формат получаемый от сервера, но его как-то надо получить. В этом поможет библиотека requests, она позволяет отправлять запросы GET и POST, работать с ней просто и новичкам будет очень удобно. С помощью библиотеки просто написать парсер или работать с API какого-то сервиса.
response = requests.get(link) - чтобы отправить запрос GET по адресу. Дальше можно получить ответ в формате json, через соответствующий метод json()
Больше информации в документации, а на картинке показан результат работы API Яндекс.Карт совместно с данной библиотекой. Например, напишем программу, которая по городу будет находить область.
Принципы программирования. Часть 3
Продолжаем разбор принципов программирования
SRP
Single Responsibility Principle - принцип единого уровня ответственности. Похож на SLAP, но больше касается ООП. Каждый объект должен выполнять свою функцию. Нужен новый функционал? Значит надо создать новый объект. Очень просто об этом говорить в небольших проектах, но чем сложнее проект, тем труднее его разбить на отдельные и независимые блоки кода.
OCP
Open-Closed Principle - принцип открытости к расширению. Говорит о том, что код должен расширяться без переписывания и изменения старого. На первый взгляд кажется, что конфликтует с YAGNI, но это не так. YAGNI говорит, что нельзя писать код, который не используется сейчас. OCP затрагивает более глубокие архитектурные вещи.
#Принципы_программирования
Продолжаем разбор принципов программирования
SRP
Single Responsibility Principle - принцип единого уровня ответственности. Похож на SLAP, но больше касается ООП. Каждый объект должен выполнять свою функцию. Нужен новый функционал? Значит надо создать новый объект. Очень просто об этом говорить в небольших проектах, но чем сложнее проект, тем труднее его разбить на отдельные и независимые блоки кода.
OCP
Open-Closed Principle - принцип открытости к расширению. Говорит о том, что код должен расширяться без переписывания и изменения старого. На первый взгляд кажется, что конфликтует с YAGNI, но это не так. YAGNI говорит, что нельзя писать код, который не используется сейчас. OCP затрагивает более глубокие архитектурные вещи.
#Принципы_программирования
Сборка exe файлов - pyinstaller
Давайте немного отвлечемся от программирования и подумаем с кем бы поделится нашей красивой программой или игрой.
Если вы просто скопируете проект, то он не будет работать на других системах где нет установленного Python, а если есть, то возможно там отсутствуют нужные библиотеки. Но можно создать исполняемый файл exe, который запустится и без Python. Необходимо установить pyinstaller:
--noconsole - консоль не будет запускаться при открытии
main.py - файл, при запуске которого начинает работать ваша программа
В папке dist будет лежать нужный файл, остальные созданные папки можно удалить
Внимание! С помощью данного метода не получится скрыть ваш код, так же вы не получите прироста в скорости работы программы.
Давайте немного отвлечемся от программирования и подумаем с кем бы поделится нашей красивой программой или игрой.
Если вы просто скопируете проект, то он не будет работать на других системах где нет установленного Python, а если есть, то возможно там отсутствуют нужные библиотеки. Но можно создать исполняемый файл exe, который запустится и без Python. Необходимо установить pyinstaller:
install pyinstallerЗатем перейти в командную строку, и перейти в нужную директорию с помощью команды cd. Далее напишем такой код:
--onefile --noconsole main.py--onefile - означает, что будет только один исполняемый файл.
--noconsole - консоль не будет запускаться при открытии
main.py - файл, при запуске которого начинает работать ваша программа
В папке dist будет лежать нужный файл, остальные созданные папки можно удалить
Внимание! С помощью данного метода не получится скрыть ваш код, так же вы не получите прироста в скорости работы программы.
Библиотека PIL
Очень хорошая библиотека для работы с изображениями. С её помощью можно много что сделать с картинками в одну строчку: повернуть по градусам, уменьшить количество цветов (и вес, соответственно), обрезать, сделать похожим на рисунок карандашом.
Плюс, с помощью этой библиотеки очень просто перебрать все пиксели и получить их RGB цвет. Библиотека нуждается в установке:
Очень хорошая библиотека для работы с изображениями. С её помощью можно много что сделать с картинками в одну строчку: повернуть по градусам, уменьшить количество цветов (и вес, соответственно), обрезать, сделать похожим на рисунок карандашом.
Плюс, с помощью этой библиотеки очень просто перебрать все пиксели и получить их RGB цвет. Библиотека нуждается в установке:
install pillowДля примера напишем простую программу объединяющую два изображения в одно. Для этого оба изображения сделаем прозрачными, будем делать в равном отношении чтобы ничто не выделялось (поэтому умножаем на 0.5), коэффициент можно изменить.
all и any
Полезные функции, которые помогут узнать есть ли определенные значения в объекте.
all возвращает True, если все объекты равны True или удовлетворяют условию.
any в свою очередь делает то же самое, но возвращает True, если хотя бы один равен True.
Теперь нет необходимости перебирать списки, достаточно использовать данные функции.
Полезные функции, которые помогут узнать есть ли определенные значения в объекте.
all возвращает True, если все объекты равны True или удовлетворяют условию.
any в свою очередь делает то же самое, но возвращает True, если хотя бы один равен True.
Теперь нет необходимости перебирать списки, достаточно использовать данные функции.
Библиотека colorama
На первый взгляд — бесполезная библиотека, позволяющая окрашивать текст в командной строке. Но она помогает выделять ошибки приложения и информацию для других разработчиков.
Библиотеку надо установить:
На первый взгляд — бесполезная библиотека, позволяющая окрашивать текст в командной строке. Но она помогает выделять ошибки приложения и информацию для других разработчиков.
Библиотеку надо установить:
install coloramaColorama позволяет изменять сам цвет текста, а так же его фон и стиль цвета. На картинке мы не можем показать изменение фона, но вы можете опробовать сами.
Библиотека FuzzyWuzzy
Интересная и полезная библиотека поиска совпадений в тексте. Очень поможет вам при работе над общающимися ботами: голосовыми или текстовыми помощниками.
Разумеется, это один из инструментов, всегда можно использовать другой, но я лично пользуюсь этим.
Библиотеку следует установить:
Интересная и полезная библиотека поиска совпадений в тексте. Очень поможет вам при работе над общающимися ботами: голосовыми или текстовыми помощниками.
Разумеется, это один из инструментов, всегда можно использовать другой, но я лично пользуюсь этим.
Библиотеку следует установить:
install fuzzywuzzyНесколько примеров работы библиотеки на картинке.
Библиотека sh
Любой программист должен знать bash - язык для взаимодействия с линуксом. Основы знают все, ведь по-другому не запустить программу на сервере или не установить нужную библиотеку. Данный модуль позволяет использовать bash прямо в Python коде.
Библиотеку требуется установить:
Любой программист должен знать bash - язык для взаимодействия с линуксом. Основы знают все, ведь по-другому не запустить программу на сервере или не установить нужную библиотеку. Данный модуль позволяет использовать bash прямо в Python коде.
Библиотеку требуется установить:
pip install sh
Если вдруг вы забыли как написать что-то на Python, то всегда можете использовать bash.Чтобы получать больше полезных материалов по ИТ и бизнесу, присоединяйтесь к сообществу @SelectelNews 🦖