🐍 Укус питона 🐍
2.88K subscribers
777 photos
4 videos
279 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Переименование файла

Для переименования вызывается функция rename(source, target), первый параметр которой - путь к исходному файлу, а второй - новое имя файла. В качестве путей могут использоваться как абсолютные, так и относительные. Например, пусть в папке C://SomeDir/ располагается файл somefile.txt. Переименуем его в файл "hello.txt":

🐍 Укус питона // 💬 Чат // #теория #модули #OS
Удаление файла

Для удаления вызывается функция remove(), в которую передается путь к файлу:

🐍 Укус питона // 💬 Чат // #теория #модули #OS
Существование файла

Если мы попытаемся открыть файл, который не существует, то Python выбросит исключение FileNotFoundError. Для отлова исключения мы можем использовать конструкцию try...except. Однако можно уже до открытия файла проверить, существует ли он или нет с помощью метода os.path.exists(path). В этот метод передается путь, который необходимо проверить:

🐍 Укус питона // 💬 Чат // #теория #модули #OS
Запись и чтение архивных zip-файлов

Zip представляет наиболее популярный формат архивации и сжатия файлов. И язык Python имеет встроенный модуль для работы с ними - zipfile. С помощью этого модуля можно создавать, считывать, записывать zip-файлы, получать их содержимое и добавлять в них файлы. Также поддерживается шифрование, но не поддерживается дешифрование.

Для представления zip-файла в этом модуле определен класс ZipFile. Он имеет следующий конструктор:

🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Запись и чтение архивных zip-файлов. Продолжение.

Параметры:
• file: путь к zip-файлу

• mode: режим открытия файла. Может принимать следующие значения:
- r: применяется для чтения существующего файла
- w: применяется для записи нового файла
- a: применяется для добавления в файл

• compression: тип сжатия файла при записи. Может принимать значения:
- ZIP_STORED: архивация без сжатия (значение по умолчанию)
- ZIP_DEFLATED: стандартный тип сжатия при архивации в zip
- ZIP_BZIP2: сжатие с помощью способа BZIP2
- ZIP_LZMA: сжатие с помощью способа LZMA

🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Запись и чтение архивных zip-файлов. Продолжение.

Для работы с файлами этот класс предоставляет ряд методов:

🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Создание и закрытие файла.

Для создания архивного файла в конструктор ZipFile передается режим "w" или "a":

После выполнения кода в текущей папке будет создаваться пустой архивный файл "metanit.zip".

🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Создание и закрытие файла. Продолжение.

После окончания работы с архивом для его закрытия применяется метод close():

Но так как ZipFile также представляет менеджер контекста, то он поддерживает выражение with, которое определяет контекст и автоматически закрывает файл по завершению контекста:

🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Запись файлов в архив.

Для записи файлов в архив применяется файл write():

Первый параметр представляет файл, который записиывается в архив. Второй параметр - arcname устанавливает произвольное имя для файла внутри архива (по умолчанию это само имя файла). Третий параметр - compress_type представляет тип сжатия, а параметр compresslevel - уровень сжатия.

Например, запишем в архив "metanit.zip" файл "hello.txt" (который, как предполагается, находится в той же папке, где и текущий скрипт python):

🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Запись файлов в архив. Продолжение.

Стоит учитывать, что при открытии файла в режиме "w" при всех последующих записях текущее содержимое будет затираться, то есть фактически архивный файл будет создаваться заново. Если нам необходимо добавить, то необходимо определять zip-файл в режиме "a":

🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Выборка простых чисел в списке любого размера

Найти этому коду реальное применение непросто. Однако этот код легко адаптировать для поиска других типов чисел, таких как четные, нечетные или чисел, делящихся на определенное число.

🐍 Укус питона // 💬 Чат // #теория #if #конструкции
Методы сравнения объектов между собой

Метод lt(self, other) в Python используется для определения порядка сортировки объектов при использовании встроенных функций сортировки, таких как sorted(). Реализация этого метода в классе позволяет указать атрибуты объекта, которые должны учитываться при сравнении с другими объектами для определения их относительного порядка.

Например, предположим, у нас есть класс Point, который представляет точку на плоскости с атрибутами x и y. Мы можем определить метод lt(self, other) в классе Point таким образом, чтобы при сравнении двух точек учитывался их порядок по оси x, а в случае равенства координат по оси x - по оси y.

🐍 Укус питона // 💬 Чат // #теория #if #конструкции
Методы сравнения объектов между собой. Продолжение.

Метод le(self, other) позволяет определить поведение объекта вашего класса при сравнении с другим объектом с использованием оператора <=. Например, если необходимо устанавливать определенные критерии сравнения для объектов вашего класса (например, на основе их атрибутов), можно переопределить метод le(self, other) таким образом, чтобы он возвращал True, если объект self меньше или равен объекту other согласно этим критериям, и False в противном случае.

🐍 Укус питона // 💬 Чат // #теория #if #конструкции
Создание и удаление объектов

Любое описание объекта в объектно-ориентированном программировании начинается с создания объекта и его удаления.

Метод new(cls[, ...]) в Python используется для создания типа класса. Он принимает тип класса в качестве первого аргумента и, обычно, возвращает этот же тип. Этот метод часто применяется для настройки создания экземпляров классов, особенно тех, которые наследуются от неизменяемых типов, таких как int, str или tuple.

init(self[, ...]) — конструктор класса. Используется при определении объектов.

init_subclass(cls) — позволяет переопределить создание подклассов объекта.

🐍 Укус питона // 💬 Чат // #теория #if #конструкции
Как проверить, что один кортеж содержит все элементы другого кортежа

Для проверки того, содержит ли один кортеж все элементы другого кортежа в Python, можно воспользоваться встроенной функцией all(), передав ей выражение генератора списков, которое проверяет наличие каждого элемента из второго кортежа в первом кортеже.

🐍 Укус питона // 💬 Чат // #теория #if #конструкции
Декораторы в Python

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

🐍 Укус питона // 💬 Чат // #теория #if #конструкции
🖥 Открытый учебник с основами Python

Здесь раскрываются не только базовые темы, но и более продвинутые — типа работы с datetime, itertools, os и другими модулями/библиотеками

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

🐍 Укус питона // 💬 Чат // #теория #if #конструкции