Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
names = [
'image.bmp',
'second.txt.bkp',
'data.db',
'.config.cfg',
'file.ext.bkp'
]
И мы хотим убрать у них окончание ".bkp".
Не знаю зачем, пример довольно надуманный) Но суть он показывает, а это главное.
Те, кто еще не очень знаком с библиотекой os.path или pathlib, вероятно решат обработать имена как строки. И тут вполне подойдет метод строки strip().
Что делает этот метод? Он отрезает указанные символы по обеим сторонам строки. Если ничего не указать, то убирает невидимые символы (пробелы, табуляции и переносы строк).
В нашем случае будет выглядеть вот так:
>>> name.strip('.bkp')
То есть просим удалить строку '.bkp' по краям имени файла, если таковая есть.
Можно применить аналогичный метод rstrip(), чтобы отрезать только справа, но для этого примера используем обычный.
>>> for name in names:
>>> print(name.strip('.bkp'))
image.bm
second.txt
data.d
config.cfg
file.ext
Хм, что-то не то с нашими именами! Что случилось??? Видим нежелательное переименование в именах, где и близко не было указанной строки '.bkp'
А дело всё в том, что данный метод ищет не указанную строку, а указанные символы, и не важно в каком порядке.
Для метода strip() строка '.bkp' это не паттерн для поискаа список символов. Потому он отрезал симовол 'p' от '.bmp' и удалил точку из файла '.config.cfg'.
Как тогда правильно заменить именно паттерн? Для начинающего можно посоветовать метод строки replace(), который как раз использует для замены указанную строку целиком. В нашем примере заменим её на пустую строку.
>>> for name in names:
>>> print(name.replace('.bkp', ''))
image.bmp
second.txt
data.db
.config.cfg
file.ext
Уже лучше, но помните, это лишь пример про strip(). Для работы с именами файлов есть способы и более "правильные", дающие однозначно верный результат. Я взял файлы только в качестве примера. Даже replase() тут может сделать не то что ожидаем.
Просто впредь будьте внимательны с этим strip().
#basic
Магнит МСФО 2025 г
♦️выручка ₽3 509,23 млрд (+15,3% г/г) ()
♦️чистый убыток ₽16,65 млрд (против прибыли ₽49,9 млрд годом ранее). В связи с переоценкой валютных депозитов и остатков денежных средств на валютных счетах.
#MGNT
Сайт | Бот | Invest Era
Магнит МСФО 2025 г.: выручка ₽3 509,23 млрд (+15,3% г/г), чистый убыток ₽16,65 млрд (против прибыли ₽49,9 млрд годом ранее) #MGNT
Читать далее
👉https://smartlab.news/i/188296
мы в max
Убыток "Тандер" (операционная дочка Магнита) по РСБУ за 2025 год составил ₽22,47 млрд против прибыли ₽46,42 млрд годом ранее, выручка ₽3,05 трлн (+13% г/г) #MGNT
Ритейлер по итогам 2025 года не получил чистой прибыли впервые более чем за 20 лет существования сети.
Читать далее
👉https://smartlab.news/i/184629
мы в max
Магнит РСБУ 2025 г.:
✔️ выручка ₽412 млн (на уровне прошлого года)
📉 чистая прибыль ₽5,4 млрд (-91,6% г/г) #MGNT
Читать далее
👉https://smartlab.news/i/184144
мы в max
Магнит РСБУ 9 мес 2025 г:
📈 Выручка ₽309,05 млн (+0,1% г/г)
📉 Чистая прибыль ₽4,01 млрд (снижение в 8,7 раза г/г)
Читать далее
👉https://smartlab.news/i/171547
#MGNT
🍏#MGNT
☄️А вот и идея на понедельник:
Сегодня тестируем середину канала снизу.
Для открытия лонга на следующей сессии необходимо закрывать день выше 3230.
Цель - 3339 (скользящая)
Стоп - 3140
☝️И кстати, 💿Нлмк сегодня ракетит, закрепляясь выше уровня канала, о котором писал тут https://t.me/privatka_Kazakova/4297, соответственно и его завтра можно будет лонговать
Не иир
🍏#mgnt
Всем доброго дня !!!🤝🤝🤝🤝
Сразу к идее!
Пару сессии назад закрепились над верхом канала, а сегодня идет обычный ретест сверху и текущие уровни 3241 беру в лонг.
Тэйк - 3351 (скользящая)
Стоп - лосс - 3140 (под минимум пробойной свечи)
Не иир
🍏#mgnt
Всем доброго дня!!!🤝🤝🤝
Сразу к идеи.
Цена на позапрошлой сессии импульсом закрепилась внатри восходящего канала, а на прошлой сессии наблюдаем попытку ретеста сверху вниз, но добоя пока не было.
Жду добоя до низа канала и беру в лонг по 2973.
Тэйк - 3050 (средняя линия канала)
Стоп - лосс (2945).
Не иир