Оба метода принимают подстроку, но
find
— находит и возвращает индекс первого совпадения с подстрокой, а replace
— заменяет найденную подстроку на новую:• find
— возвращает индекс найденного совпадения, принимает необязательные аргументы — интервалы поиска и возвращает -1
, если ничего не найдет.• replace
— возвращает копию исходной строки с новой подстрокой вместо прежней.🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27🤝17👍7
Сэкономь время и нервы, просто сделав бэкап перед изменением!
#средничкам
Создадим функцию для резервного копирования файла перед его изменением. Для этого импортируем библиотеки
Функция будет принимать файл и делать его копию. Можно вызывать ее во время открытия файла через контекстный менеджер, если планируется перезапись файла:
Здесь мы убеждаемся, что переданный файл существует и проверяем наличии папки с бэкапами. Далее внутри копии разделим имя файла и расширение для дальнейшего добавления в название времени создания копии, а также зафиксируем время изменения:
Теперь создадим путь к файлу, соединив путь к папке с бэкапами с названием копии файла и наконец скопируем содержимое исходника в бэкап:
Пример использования:
🔥 В следующей части напишем кастомный контекстный менеджер и добавим в него логику резервного копирования исходного файла!
👉 Python Ready | #практика
#средничкам
Создадим функцию для резервного копирования файла перед его изменением. Для этого импортируем библиотеки
shutil
, os
, datetime
Функция будет принимать файл и делать его копию. Можно вызывать ее во время открытия файла через контекстный менеджер, если планируется перезапись файла:
def file_backup(filepath):
if not os.path.exists(filepath):
return f'{filepath} не существует'
if not os.path.exists('backups'):
os.mkdirs('backups')
Здесь мы убеждаемся, что переданный файл существует и проверяем наличии папки с бэкапами. Далее внутри копии разделим имя файла и расширение для дальнейшего добавления в название времени создания копии, а также зафиксируем время изменения:
filename, file_extension = os.path.splitext(filepath)
timestamp = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
Теперь создадим путь к файлу, соединив путь к папке с бэкапами с названием копии файла и наконец скопируем содержимое исходника в бэкап:
backup_filepath = os.path.join('backups', f'{filename}_{timestamp}{file_extension}')
shutil.copy2(filepath, backup_filepath)
Пример использования:
file_backup(important_documents.txt)
🔥 В следующей части напишем кастомный контекстный менеджер и добавим в него логику резервного копирования исходного файла!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥7🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Уже были разные сайты, и пришло время быстренько изучить Git
learngitbranching — небольшая браузерная игра, которая поможет вам изучить Git. В ней вы познакомитесь с основными командами, которые пригодятся вам в повседневной работе.
📌 Оставляю ссылочку: learngitbranching.js
👉 Python Ready | #ресурс
learngitbranching — небольшая браузерная игра, которая поможет вам изучить Git. В ней вы познакомитесь с основными командами, которые пригодятся вам в повседневной работе.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍5
Она включает в себя:
• Создание, редактирование и отображение QR-кода через библиотеку qrcode
• Анимирование QR-кода с помощью модуля imageio
• Руководство по «игре» в тетрис
🔊 Интересно? Продолжай читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4🤝3
Переведённые на русский язык лекции топового Гарвардского курса CS50 по основам программирования. Курс охватывает ключевые концепции информатики, такие как алгоритмы, структуры данных, веб-разработка и многое другое.
Ссылочка на плейлист: YouTube🖤
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6
Напишем асинхронную функцию с помощью библиотек asyncio и aiohttp:
Этот скрипт пингует несколько сайтов одновременно, не ожидая завершения каждого запроса последовательно. Это значительно ускоряет выполнение, особенно когда есть задержки на сервере или в сети.
Основные функции:
• async — определение асинхронной функции (корутины)
• await — приостановка выполнения функции до тех пор, пока не завершится другая корутина
• aiohttp.ClientSession — выполнение HTTP-запросов
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍6🤝5
👍12🔥9
Автоматический бэкап при открытии файла через кастомный менеджер контекста!
#средничкам
В прошлой части, мы создали функцию, которая делает резервную копию переданного файла. Модернизируем систему бэкапов, добавив эту функцию в свой контекстный менеджер:
Инициализировали класс, функция бэкапа передается по умолчанию и будет срабатывать автоматически при передачи файла в наш менеджер. Теперь определим логику метода входа
Режим открытия поставил на запись, тк на чтение создание копии не нужно. Определим метод выхода
Пример работы:
🔥 Теперь при открытии файла на запись будет автоматически создаваться резервная копия. Этот пример только пример и как минимум не хватает обработки исключений
👉 Python Ready | #практика
#средничкам
В прошлой части, мы создали функцию, которая делает резервную копию переданного файла. Модернизируем систему бэкапов, добавив эту функцию в свой контекстный менеджер:
class BackupContextManager():
def __init__(self, filepath, backup_func=file_backup):
self.filepath = filepath
self.backup_func = backup_func
self.file = None # Инициализируем self.file
Инициализировали класс, функция бэкапа передается по умолчанию и будет срабатывать автоматически при передачи файла в наш менеджер. Теперь определим логику метода входа
__enter__
, который открывает файл:def __enter__(self):
self.backup_func(self.filepath)
self.file = open(self.filepath, 'w')
return self.file
Режим открытия поставил на запись, тк на чтение создание копии не нужно. Определим метод выхода
__exit__
:def __exit__(self, exc_type, exc_val, exc_tb):
self.file.close()
Пример работы:
with BackupContextManager('C:\Documents\important_documents.txt') as f:
print(f'{f} файл открыт')
🔥 Теперь при открытии файла на запись будет автоматически создаваться резервная копия. Этот пример только пример и как минимум не хватает обработки исключений
try-except
и проверки существования файла, но вы уже можете пользоваться этим прототипом!Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5❤1👎1
В этой статье:
• Идеи для начинающих разработчиков.
• Идеи проектов для Data Science.
• Проекты для веб-разработки.
🔊 Интересно? Читай полностью на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍5👎1
В этой шпаргалке собраны самые популярные методы библиотеки os, которые позволят вам взаимодействовать с операционной системой. А также с переменными окружения и процессами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍7