Как использовать Concrete Paths
Path() является дочерним классом PurePath(). Он обеспечивает операции обработки с возможностью выполнения операций записи.
Когда вы создаете экземпляр Path(), он создает два класса для обработки путей Windows и путей, отличных от Windows. Как и PurePath(), Path() также создает общий объект пути «agnostic path», независимо от операционной системы, в которой вы работаете.
Подписывайтесь на канал 👉@pythonofff
Path() является дочерним классом PurePath(). Он обеспечивает операции обработки с возможностью выполнения операций записи.
Когда вы создаете экземпляр Path(), он создает два класса для обработки путей Windows и путей, отличных от Windows. Как и PurePath(), Path() также создает общий объект пути «agnostic path», независимо от операционной системы, в которой вы работаете.
Подписывайтесь на канал 👉@pythonofff
🔥2👍1
Получение списка имен в объектах
С помощью функции dir() можно получить отсортированный список имен атрибутов и методов, доступных в локальной области. Либо если в функцию передать какой-либо объект dir(object), она вернет список всех имен атрибутов и методов переданного объекта.
Для того, чтобы вручную определить для класса выдачу информации по атрибутам для функции dir(), можно определить в классе метод __dir__().
Для классов, в которых не определен __dir__(), функция соберет информацию по атрибутам из __dict__.
Данную функцию удобно использовать в интерактивном режиме для поиска нужного атрибута, применяя функцию help() по нужному атрибуту для получения документации.
Подписывайтесь на канал 👉@pythonofff
С помощью функции dir() можно получить отсортированный список имен атрибутов и методов, доступных в локальной области. Либо если в функцию передать какой-либо объект dir(object), она вернет список всех имен атрибутов и методов переданного объекта.
Для того, чтобы вручную определить для класса выдачу информации по атрибутам для функции dir(), можно определить в классе метод __dir__().
Для классов, в которых не определен __dir__(), функция соберет информацию по атрибутам из __dict__.
Данную функцию удобно использовать в интерактивном режиме для поиска нужного атрибута, применяя функцию help() по нужному атрибуту для получения документации.
Подписывайтесь на канал 👉@pythonofff
🔥2❤1
PosixPath()
Это дочерний класс Path() и PurePosixPath(), реализованный для обработки и управления путями файловой системы, отличной от Windows.
Вы получите сообщение об ошибке, если создадите экземпляр PosixPath() на компьютере с Windows, потому что нельзя выполнять системные вызовы, работая в другой операционной системе.
Подписывайтесь на канал 👉@pythonofff
Это дочерний класс Path() и PurePosixPath(), реализованный для обработки и управления путями файловой системы, отличной от Windows.
Вы получите сообщение об ошибке, если создадите экземпляр PosixPath() на компьютере с Windows, потому что нельзя выполнять системные вызовы, работая в другой операционной системе.
Подписывайтесь на канал 👉@pythonofff
🔥2👍1
Генерация капчи
Сегодня покажем создание простейшей капчи. Для этого нам понадобится модуль captcha и Pillow, который используется для создание изображений в captcha.
Все максимально просто, за нас по сути все делает уже написанный в модуле код. Создаем объект изображения ImageCaptcha, на который будет нанесен текст. После чего вызываем метод write с заданным текстом и именем файла, в который будет записано изображение.
Подписывайтесь на канал 👉@pythonofff
Сегодня покажем создание простейшей капчи. Для этого нам понадобится модуль captcha и Pillow, который используется для создание изображений в captcha.
Все максимально просто, за нас по сути все делает уже написанный в модуле код. Создаем объект изображения ImageCaptcha, на который будет нанесен текст. После чего вызываем метод write с заданным текстом и именем файла, в который будет записано изображение.
Подписывайтесь на канал 👉@pythonofff
🔥5👍2
WindowsPath()
Это дочерний класс Path() и PureWindowsPath(), реализованный для путей файловой системы Windows.
Создание WindowsPath(), если вы работаете в другой операционной системе, тоже вызовет ошибку.
Подписывайтесь на канал 👉@pythonofff
Это дочерний класс Path() и PureWindowsPath(), реализованный для путей файловой системы Windows.
Создание WindowsPath(), если вы работаете в другой операционной системе, тоже вызовет ошибку.
Подписывайтесь на канал 👉@pythonofff
🔥3
Получаем исходный код объекта
Встроенный модуль inspect помогает разработчикам исследовать уже написанные программы.
Сегодня поговорим только про getsource(), который возвращает весь исходный код функции, класса или модуля в виде строки.
В аргументы достаточно передать необходимый объект. Но важно отметить, что встроенные функции не получится проинспектировать.
Подписывайтесь на канал 👉@pythonofff
Встроенный модуль inspect помогает разработчикам исследовать уже написанные программы.
Сегодня поговорим только про getsource(), который возвращает весь исходный код функции, класса или модуля в виде строки.
В аргументы достаточно передать необходимый объект. Но важно отметить, что встроенные функции не получится проинспектировать.
Подписывайтесь на канал 👉@pythonofff
👍7🔥2
Свойства Concrete Paths
Поскольку Concrete Paths является подклассом PurePath, мы можем использовать все свойства PurePath().
Это означает, что мы можем использовать, например, свойство .with_suffix для добавления суффикса к конкретному пути.
Подписывайтесь на канал 👉@pythonofff
Поскольку Concrete Paths является подклассом PurePath, мы можем использовать все свойства PurePath().
Это означает, что мы можем использовать, например, свойство .with_suffix для добавления суффикса к конкретному пути.
Подписывайтесь на канал 👉@pythonofff
👍3🔥1
Проверяем тип объекта
Раз уж в предыдущем посте затронули модуль inspect, то давайте еще поговорим про некоторые его возможности.
Функции ismodule(), isclass(), ismethod() и isfunction() проверяют переданный объект на то, является ли он модулем, классом, методом или функцией соответственно.
Подписывайтесь на канал 👉@pythonofff
Раз уж в предыдущем посте затронули модуль inspect, то давайте еще поговорим про некоторые его возможности.
Функции ismodule(), isclass(), ismethod() и isfunction() проверяют переданный объект на то, является ли он модулем, классом, методом или функцией соответственно.
Подписывайтесь на канал 👉@pythonofff
🔥3👍2
Методы Concrete Paths
Каждый подкласс Path() предоставляет следующие методы для обработки путей и выполнения системных вызовов:
Path().itertir() возвращает содержимое каталога.
Подписывайтесь на канал 👉@pythonofff
Каждый подкласс Path() предоставляет следующие методы для обработки путей и выполнения системных вызовов:
Path().itertir() возвращает содержимое каталога.
Подписывайтесь на канал 👉@pythonofff
👍2🔥2😐1
Трюк с f-строками
Думаю, про f-строки как метод форматирования все уже знают. Напоминаю, что появились они еще в Python 3.6.
Но им добавили еще одну классную фичу в обновлении 3.8 — можно выводить имя переменной и сразу ее значение, добавив знак равно как показано на картинке.
Подписывайтесь на канал 👉@pythonofff
Думаю, про f-строки как метод форматирования все уже знают. Напоминаю, что появились они еще в Python 3.6.
Но им добавили еще одну классную фичу в обновлении 3.8 — можно выводить имя переменной и сразу ее значение, добавив знак равно как показано на картинке.
Подписывайтесь на канал 👉@pythonofff
👍13🔥2
Path().mkdir()
Согласно официальной документации, метод .mkdir() принимает три аргумента. Мы пока сосредоточимся только на parents и exists_ok.
Оба аргумента имеют значение False по умолчанию. Аргумент parents вызывает ошибку FileNotFound в случае отсутствия родителя, тогда как exists_ok вызывает ошибку FileExists, если данный каталог уже существует.
Подписывайтесь на канал 👉@pythonofff
Согласно официальной документации, метод .mkdir() принимает три аргумента. Мы пока сосредоточимся только на parents и exists_ok.
Оба аргумента имеют значение False по умолчанию. Аргумент parents вызывает ошибку FileNotFound в случае отсутствия родителя, тогда как exists_ok вызывает ошибку FileExists, если данный каталог уже существует.
Подписывайтесь на канал 👉@pythonofff
🔥2
Изменение в контекстных менеджерах
Как вы знаете, для удобного управления жизненным циклом ресурсов в python существуют контекстные менеджеры. Но до недавнего времени, чтобы открыть несколько ресурсов в рамках одной области видимости with нам требовалось либо прописывать их в одну строку либо использовать синтаксис переноса - обратный слеш \ (но это противоречит PEP8).
С выходом python 3.10 появился новый синтаксис, позволяющий в круглых скобках указывать несколько контекстных менеджеров. А также мы можем использовать переменную созданную одним контекстным менеджером в рамках следующего за ним менеджера.
Это стало возможным благодаря появлению нового синтаксического анализатора PEG в python 3.9. И, строго говоря, python 3.9 уже допускал данный синтаксис, хотя официально еще не поддерживался.
Подписывайтесь на канал 👉@pythonofff
Как вы знаете, для удобного управления жизненным циклом ресурсов в python существуют контекстные менеджеры. Но до недавнего времени, чтобы открыть несколько ресурсов в рамках одной области видимости with нам требовалось либо прописывать их в одну строку либо использовать синтаксис переноса - обратный слеш \ (но это противоречит PEP8).
С выходом python 3.10 появился новый синтаксис, позволяющий в круглых скобках указывать несколько контекстных менеджеров. А также мы можем использовать переменную созданную одним контекстным менеджером в рамках следующего за ним менеджера.
Это стало возможным благодаря появлению нового синтаксического анализатора PEG в python 3.9. И, строго говоря, python 3.9 уже допускал данный синтаксис, хотя официально еще не поддерживался.
Подписывайтесь на канал 👉@pythonofff
❤5🔥2
Path().touch()
Здесь для exists_ok тоже можно установить значение True, чтобы игнорировать ошибку FileExists и обновлять файл.
Подписывайтесь на канал 👉@pythonofff
Здесь для exists_ok тоже можно установить значение True, чтобы игнорировать ошибку FileExists и обновлять файл.
Подписывайтесь на канал 👉@pythonofff
🔥2
Логирование
Логировние является неотъемлемой частью разработки. Логи показывают информацию о текущем состоянии программы. И чем лучше выстроено логирование, тем проще будет разобраться в нестандартных ситуациях.
Python поставляется для этих целей с гибким модулем logging. Для создания объекта Logger, вызываем функцию getLogger, передавая в нее имя логера.
Созданный объект Logger предоставляет методы для записи сообщений разного уровня (DEBUG, INFO, WARNING, ERROR, CRITICAL), что удобно для поиска нужной информации с применением фильтров.
По умолчанию в logging задан уровень WARNING, это означает, что сообщения уровня DEBUG и INFO будут игнорироваться при записи в лог. Изменить данное поведение можно с помощью метода setLevel, передав минимальный уровень, который будет отлавливаться.
Для отправки логов в сконфигурированные места используются обработчики. Мы можем использовать уже существующие хэндлеры, либо создать свой класс обработчика, унаследовавшись от базового класса Handler.
Подписывайтесь на канал 👉@pythonofff
Логировние является неотъемлемой частью разработки. Логи показывают информацию о текущем состоянии программы. И чем лучше выстроено логирование, тем проще будет разобраться в нестандартных ситуациях.
Python поставляется для этих целей с гибким модулем logging. Для создания объекта Logger, вызываем функцию getLogger, передавая в нее имя логера.
Созданный объект Logger предоставляет методы для записи сообщений разного уровня (DEBUG, INFO, WARNING, ERROR, CRITICAL), что удобно для поиска нужной информации с применением фильтров.
По умолчанию в logging задан уровень WARNING, это означает, что сообщения уровня DEBUG и INFO будут игнорироваться при записи в лог. Изменить данное поведение можно с помощью метода setLevel, передав минимальный уровень, который будет отлавливаться.
Для отправки логов в сконфигурированные места используются обработчики. Мы можем использовать уже существующие хэндлеры, либо создать свой класс обработчика, унаследовавшись от базового класса Handler.
Подписывайтесь на канал 👉@pythonofff
👍4❤1🔥1
Path().rename()
Переименовывает файл/каталог по указанному пути. Давайте рассмотрим пример, используя наш каталог /data
Если вы передадите методу несуществующий файл, он вызовет ошибку FileNotFound. То же самое относится и к каталогам.
Подписывайтесь на канал 👉@pythonofff
Переименовывает файл/каталог по указанному пути. Давайте рассмотрим пример, используя наш каталог /data
Если вы передадите методу несуществующий файл, он вызовет ошибку FileNotFound. То же самое относится и к каталогам.
Подписывайтесь на канал 👉@pythonofff
🔥2❤1👍1
Генерируем случайные числа
Небольшой пост для тех, кто только начинает свое обучение. Во встроенном модуле random есть функция randint, которая выдает случайные числа.
Диапазон получаемого числа задается с помощью двух аргументов: нижняя и верхняя границы в виде целых чисел.
Подписывайтесь на канал 👉@pythonofff
Небольшой пост для тех, кто только начинает свое обучение. Во встроенном модуле random есть функция randint, которая выдает случайные числа.
Диапазон получаемого числа задается с помощью двух аргументов: нижняя и верхняя границы в виде целых чисел.
Подписывайтесь на канал 👉@pythonofff
🔥4❤1
Что такое список в Python?
Список в Python — это встроенный тип данных, который позволяет нам хранить множество различных значений, таких как числа, строки, объекты datetime и так далее.
Важно отметить, что списки упорядочены. Это означает, что последовательность, в которой мы храним значения, важна.
Подписывайтесь на канал 👉@pythonofff
Список в Python — это встроенный тип данных, который позволяет нам хранить множество различных значений, таких как числа, строки, объекты datetime и так далее.
Важно отметить, что списки упорядочены. Это означает, что последовательность, в которой мы храним значения, важна.
Подписывайтесь на канал 👉@pythonofff
👍5🤔1🤨1
Пакет со всеми алгоритмами
На днях обнаружил крутой пакет, в котором реализованы практически все алгоритмы, которые можно представить.
Список всех алгоритмов с ссылками на их исходный код можете найти здесь. Такой пакет можно использовать и на практике, и как справочник на всякий случай.
Например, можете посмотреть пример использования сортировки слиянием на картинке выше.
Подписывайтесь на канал 👉@pythonofff
На днях обнаружил крутой пакет, в котором реализованы практически все алгоритмы, которые можно представить.
Список всех алгоритмов с ссылками на их исходный код можете найти здесь. Такой пакет можно использовать и на практике, и как справочник на всякий случай.
Например, можете посмотреть пример использования сортировки слиянием на картинке выше.
Подписывайтесь на канал 👉@pythonofff
🔥5❤2👍2
Как определить индекс элемента списка в Python
Итак, как же определить индекс элемента в Python? Давайте представим, что у нас есть элемент списка и нам нужно узнать индекс или позицию этого элемента.
Списки Python предоставляют нам метод index(), с помощью которого можно получить индекс первого вхождения элемента в список.
Подписывайтесь на канал 👉@pythonofff
Итак, как же определить индекс элемента в Python? Давайте представим, что у нас есть элемент списка и нам нужно узнать индекс или позицию этого элемента.
Списки Python предоставляют нам метод index(), с помощью которого можно получить индекс первого вхождения элемента в список.
Подписывайтесь на канал 👉@pythonofff
🔥3👍1
Эмодзи
Для вывода эмодзи в python существует несколько методов.
1. Т.к. все эмодзи по сути являются Unicode символам, то мы можем использовать коды символов из Unicode-таблицы, предварительно перед выводом заменяя в коде + на 000.
2. У всех эмодзи существуют краткие CLDR имена, которые мы также можем использовать для вывода.
3. Также можно использовать модуль emoji. В функцию emojize передается CLDR имя, пробелы в котором заменены на нижние подчеркивания и добавлены двоеточия на концах.
Подписывайтесь на канал 👉@pythonofff
Для вывода эмодзи в python существует несколько методов.
1. Т.к. все эмодзи по сути являются Unicode символам, то мы можем использовать коды символов из Unicode-таблицы, предварительно перед выводом заменяя в коде + на 000.
2. У всех эмодзи существуют краткие CLDR имена, которые мы также можем использовать для вывода.
3. Также можно использовать модуль emoji. В функцию emojize передается CLDR имя, пробелы в котором заменены на нижние подчеркивания и добавлены двоеточия на концах.
Подписывайтесь на канал 👉@pythonofff
👍4🔥2❤1