Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
Первый случай за всё существование канала — рубрика «Дуга ебейшая» в… хоккее? 🏒
Что это было?! Это Уайтт Джонстон из «Даллас Старз» ставит точку в матче с «Миннесотой», отправляя шайбу в пустые. Но посмотрите на траекторию…
Шайба уже уходила мимо и защитник «Уайлд» Куинн Хьюз даже перестал бежать и решил, что будет проброс — но… шайба взяла и завернула в створ по идеальной дуге.
Магнит? Магия? Чистая физика!
😎Ozzy в MAX | #Хоккей#NHL
«Нашёл щёлочку» — снайперский выстрел Капризова в самую девять 🎯
Кирилл Зэ Трилл набрал 1+2 с победным голом в первом матче серии с «Далласом» и был признан второй звездой матча — теперь на счету 28-летнего россиянина стало 24 (16+8) очка в 26 играх в плей-офф НХЛ за карьеру и это повторение рекорда «Миннесоты».
😎Ozzy в MAX | #Хоккей#NHL
Давно не было этого парня в ленте 🛩
Матвей Мичков набрал 1+2 с победным голом в матче против «Монреаля» и был признан первой звездой матча и второй звездой дня в НХЛ — теперь на его счету 20+31 в 81 игре сезона.
Подведём итоги сезона для 21-летнего русского из «Филадельфии» — второй сезон подряд подряд 20+ голов и 50+ очков, он четвертый снайпер и четвертый же бомбардир клуба.
👏 — красавчик
🤓 — я ожидал большего
😎Ozzy в MAX | #Хоккей#NHL
Красота дня в НХЛ — Джек Айкел и его глаза на затылке 👀
Это парни из «Вегас Голден Найтс» разыграли идеальную комбинацию — Джек Айкел, проезжая за воротами, отдал роскошный ноулук-ассист на Барбашева.
Ивану оставалось просто не промахнуться в пустой угол — у него 1+1 в матче и 23+38 в 81 игре в сезоне при полезности «+20». Достойно!
PS. С вратарём «Виннипега» после гола случился эталонный мем «АЧО ВСМЫСЛЕ?» — кажется, он так и не понял, что с ним произошло 😁
😎Ozzy в MAX | #Хоккей#NHL
Русская красота дня в НХЛ — шедевр от Биг Вэла 🧨
Это Валерий Ничушкин из «Колорадо Эвеланш» сделал дубль с «Сент-Луисом» и был признан первой звездой матча — теперь на его счету 17+30 очков в 67 играх в сезоне при полезности «+8».
Второй гол получился особенно кайфовым — Вэл забил в меньшинстве броском из-под ноги.
😎Ozzy в MAX | #Хоккей#NHL
Роскошная комбинация «Тампы» и гол номер 400 от Никиты Кучерова 😍
Куч забил «Баффало» свой 400-й гол в регулярных чемпионатах НХЛ — всего на его счету 1120 (400+720) очков в 874 матчах за карьеру.
Что же касается текущего сезона, то теперь у русского могучего форварда 126 (43+83) очков в текущем сезоне в 71 игре и он догнал Коннора Макдэвида в гонке бомбардиров — у того те же (43+83), но в 77 матчах сезона.
А ещё:
⏺Кучеров — второй игрок с 400+ голами за «Тампу» в НХЛ. У Стэмкоса — 555.
⏺Кучеров — восьмой россиянин в истории НХЛ с 400+ шайбами в регулярках, а среди начавших карьеру в XXI веке — четвертый. Ранее такое достижение покорилось — Овечкину (928 голов в 1569 играх), Малкину (532 в 1267), Федорову (483 в 1248), Могильному (473 в 990), Ковальчуку (443 в 926), Буре (437 в 702) и Ковалеву (430 в 1316).
😎Ozzy в MAX | #Хоккей#NHL
«Kid Line» «Детское звено Шаркс» решает 🦈
Это тройка «Сан-Хосе» Селебрини — Смит — Чернышов организовала победный гол в ворота «Коламбуса» — суммарный возраст этого звена всего 60 лет (19+21+20).
Игорь Чернышов оформил первый дубль в НХЛ — у 20-летнего русского форварда «Сан-Хосе» 5+9 в 19 играх в сезоне.
«Акулёнок ту-ру-ру-ру»
😎Ozzy в MAX | #Хоккей#NHL
🦅
1️⃣
1️⃣
1️⃣ Великий внезапно пульнул в «Юту» хет-триком
3 — гола в матче
34 — хет-триков в лиге в рамках регулярок и это четвертое место в истории НХЛ по этому показателю
29+27 — 56 очков в 73 матчах чемпионата
926 — голов в карьере в регулярках
1003 — гола в карьере с учетом плей-офф
9 — матчей осталось сыграть в чемпионате
13 — до Гретцки
😎Ozzy в MAX | #Хоккей#NHL
Немного хоккейного волшебства вам в утреннюю ленту — что-то на Дацюкском 🪄
Это Артемий Панарин из «ЭлЭй Кингз» в серии буллитов исполнил что-то ультрастильное — вначале Хлебушек обманными движениями уложил вратаря соперника на живот как пингвина, а потом запустил ему за шиворот парашютик в стиле Павла Дацюка.
😎Ozzy в MAX | #Хоккей#NHL