Что выведет этот код?
Anonymous Quiz
11%
0
35%
{"foo", "val", "bar"}
23%
{"bar", "foo}
18%
Ошибку
13%
Узнать ответ
⚡️ Работаем с временными файлами
Бывают такие ситуации, когда держать информацию в оперативной памяти не желательно или вообще невозможно. Модуль tempfile может справиться с этой задачей.
• TemporaryFile() — создаёт временный файл и позволяет контролировать его, как обычный битовый поток. По умолчанию, режим работы — w+b (чтение, запись, битовый файл).
• TemporaryDirectory() — создаёт временную директорию. Возвращает путь к этой самой паке в виде строки.
• mkstemp() — создаёт файл и накладывает управление им на вас. Возвращает кортеж из дескриптора уровня ОС и пути. mkdtemp() выполняет тоже самое, только работает с папками
• gettempdir() — возвращает путь к папке со всеми временными директориями и файлами
По окончанию работы программы TemporaryFile и TemporaryDirectory автоматически удаляються.
#миниурок #tempfile
Бывают такие ситуации, когда держать информацию в оперативной памяти не желательно или вообще невозможно. Модуль tempfile может справиться с этой задачей.
• TemporaryFile() — создаёт временный файл и позволяет контролировать его, как обычный битовый поток. По умолчанию, режим работы — w+b (чтение, запись, битовый файл).
• TemporaryDirectory() — создаёт временную директорию. Возвращает путь к этой самой паке в виде строки.
• mkstemp() — создаёт файл и накладывает управление им на вас. Возвращает кортеж из дескриптора уровня ОС и пути. mkdtemp() выполняет тоже самое, только работает с папками
• gettempdir() — возвращает путь к папке со всеми временными директориями и файлами
По окончанию работы программы TemporaryFile и TemporaryDirectory автоматически удаляються.
#миниурок #tempfile
⚡️ Сравниваем файлы
Конечно, можно использовать обычный open, считывать данные и потом их сравнивать. Но зачем, когда есть модуль filecmp, который имеет больший функционал.
cmp(file1, file2) — сравнивает два файла. Возвращает true, если они равны, иначе — false.
dircmp(dir1, dir2) — класс, который сравнивает файлы внутри папок. Хранит внутри себя всю информацию о работе. Например файлы, которые невозможно отсканировать или одинаковые/разные объекты.
Подробнее, как всегда — на сайте документации.
#миниурок #filecmp
Конечно, можно использовать обычный open, считывать данные и потом их сравнивать. Но зачем, когда есть модуль filecmp, который имеет больший функционал.
cmp(file1, file2) — сравнивает два файла. Возвращает true, если они равны, иначе — false.
dircmp(dir1, dir2) — класс, который сравнивает файлы внутри папок. Хранит внутри себя всю информацию о работе. Например файлы, которые невозможно отсканировать или одинаковые/разные объекты.
Подробнее, как всегда — на сайте документации.
#миниурок #filecmp
⚡️ Работаем с командной строкой
В этом нам поможет модуль subprocess — он позволяет создавать новые процессы, подключать вывод и работать с кодом возврата.
Пройдемся по его методам:
run(args) — вызывает команду, переданную в args. Ожидает её выполнения и возвращает CompletedProcess. Если возникает ошибка, то вызывает CalledProcessError.
Popen(args) — класс, который вызывает args команду в виде нового процесса.
STDOUT — особая переменная, которая говорит, что данные должны идти на вывод в ту же консоль.
DEVNULL — особая переменная, которая избавляется от всех входящих данных.
#миниурок #subprocess
В этом нам поможет модуль subprocess — он позволяет создавать новые процессы, подключать вывод и работать с кодом возврата.
Пройдемся по его методам:
run(args) — вызывает команду, переданную в args. Ожидает её выполнения и возвращает CompletedProcess. Если возникает ошибка, то вызывает CalledProcessError.
Popen(args) — класс, который вызывает args команду в виде нового процесса.
STDOUT — особая переменная, которая говорит, что данные должны идти на вывод в ту же консоль.
DEVNULL — особая переменная, которая избавляется от всех входящих данных.
#миниурок #subprocess
⚡️ Узнаём и используем информацию о файлах
os.stat возвращает информацию о файле в виде stat_result. Но есть одно но — с ней тяжело работать. Тут на помощь приходит модуль stat.
S_ISDIR(mode) — позволяет узнать, является ли объект папкой (mode — это stat_result.st_mode).
S_ISREG(mode) — позволяет узнать, является ли объект обычным файлом.
filemode(mode) — возвращает режим в виде прав доступа. Например: -rwxrwxrwx
Здесь собраны самые используемые методы, но подробнее о них можно узнать на сайте документации.
#миниурок #os #stat
os.stat возвращает информацию о файле в виде stat_result. Но есть одно но — с ней тяжело работать. Тут на помощь приходит модуль stat.
S_ISDIR(mode) — позволяет узнать, является ли объект папкой (mode — это stat_result.st_mode).
S_ISREG(mode) — позволяет узнать, является ли объект обычным файлом.
filemode(mode) — возвращает режим в виде прав доступа. Например: -rwxrwxrwx
Здесь собраны самые используемые методы, но подробнее о них можно узнать на сайте документации.
#миниурок #os #stat
⚡️ Задачка с собеседования | #Medium
Условие:
Ваша задача — написать метод, который будет позиционировать строку. Он принимает саму строку, а после align со значениями left, center или right (по умолчанию - left) и длину возвращаемой строки.
Примеры — на изображении выше.
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать метод, который будет позиционировать строку. Он принимает саму строку, а после align со значениями left, center или right (по умолчанию - left) и длину возвращаемой строки.
Примеры — на изображении выше.
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Безопасно выполняем команды
Модуль shlex хранит в себе функционал для синтаксического анализа текста оболочки, которая напоминает unix.
split(s) — принимает в себя строку и «делит» её на аргументы. Также принимает необязательный параметр comments, который отвечает, обрабатывать ли комментарии.
join(arr) — выполняет обратное действие для split — соединяет все строки.
quote(s) — возвращает безопасную версию строки, позволяя избежать инъекций.
Это далеко не полный функционал библиотеки — с полным руководством вы, как обычно, можете ознакомиться на сайте документации.
#миниурок #shlex
Модуль shlex хранит в себе функционал для синтаксического анализа текста оболочки, которая напоминает unix.
split(s) — принимает в себя строку и «делит» её на аргументы. Также принимает необязательный параметр comments, который отвечает, обрабатывать ли комментарии.
join(arr) — выполняет обратное действие для split — соединяет все строки.
quote(s) — возвращает безопасную версию строки, позволяя избежать инъекций.
Это далеко не полный функционал библиотеки — с полным руководством вы, как обычно, можете ознакомиться на сайте документации.
#миниурок #shlex
⚡️ Задачка с собеседования | #Easy
Условие:
Ваша задача — написать метод, который будет обрезать строку до определённой длины и добавлять в конец троеточие. Если текст длиннее или же равен max len, то ничего не меняем
Пример:
#Задачка_с_собеседования
Условие:
Ваша задача — написать метод, который будет обрезать строку до определённой длины и добавлять в конец троеточие. Если текст длиннее или же равен max len, то ничего не меняем
Пример:
cut_str("Hello world!") -> Hello worl...
text = "Lorem Ipsum is simply dummy text"
cut_str(text) -> Lorem Ipsu...
cut_str(text, max_len=12) -> Lorem Ipsum...
cut_str(text, max_len=40) -> Lorem Ipsum is simply dummy text
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇#Задачка_с_собеседования
⚡️ Методы строк, о которых вы не знали
• ljust, rjust, center — используются для позиционирования строки. На самом деле, они просто создают строку, не меньше width и заполняют её пробелами (или другим, переданным символом).
• expandtabs — возвращает строку, в которой все символы табуляции заменяются на пробелы. Если tabsize не указан, то размер таба составляет 8 пробелов
• strip — удаляет пробелы, табуляцию, перенос на новою строку и тому подобные символы из конца и начала строки. Если передать собственные символы, то функция избавится от них. rstrip и lstrip делают тоже самое, только в конце и начале строки
splitlines — возвращает список строк в тексте. Его гораздо удобнее использовать чем метод split, как видно на примере выше. Список всех поддерживаемых символов стоит посмотреть в документации.
#теория #str
• ljust, rjust, center — используются для позиционирования строки. На самом деле, они просто создают строку, не меньше width и заполняют её пробелами (или другим, переданным символом).
• expandtabs — возвращает строку, в которой все символы табуляции заменяются на пробелы. Если tabsize не указан, то размер таба составляет 8 пробелов
• strip — удаляет пробелы, табуляцию, перенос на новою строку и тому подобные символы из конца и начала строки. Если передать собственные символы, то функция избавится от них. rstrip и lstrip делают тоже самое, только в конце и начале строки
splitlines — возвращает список строк в тексте. Его гораздо удобнее использовать чем метод split, как видно на примере выше. Список всех поддерживаемых символов стоит посмотреть в документации.
#теория #str
⚡️ Только ключевые и только позиционные аргументы
Давайте для начала разберёмся. Позиционные аргументы — параметры, которые задаются только в определённом порядке. Они не поддерживают конструкцию типа key = value.
Ключевые аргументы — те, что получают значения через ключ. Они работают только с конструкцией key = value.
Для того, что бы задать порядок позиционных аргументов пишут /. Всё, что находится до этого символа будет зависеть от позиции. Ключевые же используют *, всё что после неё будет задавать только через ключ.
Также вы можете смешивать позиционные, ключевые и обычные аргументы внутри одной функции.
Больше примеров можно найти на сайте документации.
#теория
Давайте для начала разберёмся. Позиционные аргументы — параметры, которые задаются только в определённом порядке. Они не поддерживают конструкцию типа key = value.
Ключевые аргументы — те, что получают значения через ключ. Они работают только с конструкцией key = value.
Для того, что бы задать порядок позиционных аргументов пишут /. Всё, что находится до этого символа будет зависеть от позиции. Ключевые же используют *, всё что после неё будет задавать только через ключ.
Также вы можете смешивать позиционные, ключевые и обычные аргументы внутри одной функции.
Больше примеров можно найти на сайте документации.
#теория
⚡️ Задачка с собеседования | #Easy
Условие:
Ваша задача — написать функцию, которая будет находить отличия между первым и вторым списком
Пример:
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая будет находить отличия между первым и вторым списком
Пример:
list_diff([], []) -> []
list_diff([], [1, 2]) -> []
list_diff([1, 2], [2]) -> [1]
list_diff([6, 4, 3], [7]) -> [6, 4, 3]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇#Задачка_с_собеседования