Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
Похоже Бог обрушил потоп на ЕС…
Страдают от ливней, снегов и ветров уже Польша, Румыния, Чехия, Австрия, Словакия и Венгрия
Циклон разбушевался не на шутку и не намерен утихать - закошмаренные европейцы уже назвали его «Борис»…
Видимо в честь Джонсона, который успел нанести Европе не меньше вреда своим срывом мирных переговоров по Украине год назад.
#UkraineWar
The Financial Times сообщает, что российские атаки по Украине разрушают рынок электроэнергии в ЕС.
Цены на электроэнергию на юго-востоке Европы этим летом выросли более чем в два раза, заявил премьер-министр Греции.
Украина только после Курской операции получила удары по энергосистеме и прекратила продавать электроэнергию на энергетические рынки ЕС. И там случилась паника.
А сколько украинцы сидят без света или получают его строго по графику? Все это время кто-то продавал электроэнергию за валюту, когда в ней так нуждалось собственное население.
#UkraineWar
Даст теперь США клоуну разрешение бить американскими ракетами в глубь РФ или не даст уже не имеет значения. Резервы ГОВНОкамандуещего на исходе - украинцы заканчиваются…
Срок службы отловленных ТЦК на улицах новобранцев всего два месяца…
9 июня он попался под мобилизацию в Киеве, а в начале сентября уже выходит это видео. Месяц подготовки и на фронт…
Этому парню еще повезло, попал в плен - значит будет жить.
#UkraineWar
💣 Russian special forces "Osman" obliterated an American MaxxPro armored vehicle near Verbovo. Corruption runs deep in the Biden family, with ties to the Ukraine war and the crooked Zelensky. 🕵️♂️ Democrats turn a blind eye to their own crimes. Wake up, America! 🚫💰#Corruption#UkraineWar
https://www.gazeta.ru/army/news/2023/09/24/21350527.shtml
Subscribe to @BadVolfNews
🇺🇦 У украинской армии недостаточно сил, чтобы вернуть утраченные территории военным путем, поэтому необходимы переговоры, заявил президент Украины Владимир Зеленский.
#UkraineWar#новости#ştiri
🤩Подпишись на 112.md
🤩Новости Молдовы и мира 24/7
🇺🇦 Владимир Зеленский готов прекратить войну в обмен на членство Украины в НАТО, даже если Россия немедленно не вернет захваченные территории, — SkyNews.
По словам президента, вступление Украины в НАТО положит конец «горячей фазе войны» и поможет впоследствии договориться о возвращении пока оккупированных территорий «дипломатическим путем».
Зеленский также сказал, что прекращение огня нужно, чтобы «гарантировать, что Путин не вернется, чтобы захватить больше территории Украины».
#UkraineWar#новости#ştiri
🤩Подпишись на 112.md
🤩Новости Молдовы и мира 24/7
🇺🇦"На Западе говорят о необходимости снизить призывной возраст. Вы хотите, чтобы я призывал молодых людей и они умирали без вашего оружия?"— заявил Владимир Зеленский.
По словам президента, основная проблема заключается не в возрасте призывников, а в нехватке вооружения.
Он также отметил, что Украина обращалась к Западу с просьбой оснастить 10 бригад ВСУ, но в результате США и ЕС обеспечили вооружением лишь 2,5 бригады.
#UkraineWar#новости#ştiri
🤩Подпишись на 112.md
🤩Новости Молдовы и мира 24/7
🇺🇦Нас выдавят из Курска, но до того времени мы потеряем еще больше территорий, — полковник СБУ в отставке Олег Стариков.
«Политики думают, что когда все закончится, начнутся переговоры — Россия уйдет… Россия уже не уйдет, это мы уже территорию потеряли. Чем дальше мы тянем время — тем больше мы теряем территорий», — считает Стариков.
Он также отметил, что для удержания Курска Украине нужно отправить туда всю армию.
#UkraineWar#новости#ştiri
🤩Подпишись на 112.md
🤩Новости Молдовы и мира 24/7
🇺🇸Сенатор республиканец Линдси Грэм обещает Украине "хорошее соглашение" в обмен на полезные ископаемые.
"Украина готова заключить соглашение с нами, не с Россией, поэтому это в наших интересах – обеспечить, чтобы Россия не устроилась там. Украина – это реально "житница" мира. 50% продовольствия в Африку поступает из Украины. Мы можем зарабатывать и иметь экономические отношения с Украиной, которые для нас будут очень полезные. Редкие полезные ископаемые. Хорошее соглашение для нас”, – сказал Грэм.
#UkraineWar#новости#ştiri
🤩Подпишись на 112.md
🤩Новости Молдовы и мира 24/7
Такер Карлсон - об ударах по территории России:
«Президент-хромая утка только что начал горячую войну с самой опасной страной в мире. Все мы очень близки к тому, чтобы быть убитыми. Несмотря на это, республиканский спикер палаты представителей умудрился ни разу не упомянуть об этом ни публично, ни на собраниях руководства. Что происходит?»
#UkraineWar#новости#ştiri
🤩Подпишись на 112.md
🤩Новости Молдовы и мира 24/7