Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
🕵️🇺🇸CALIFORNIA MAYOR ADMITS BEING CHINESE SPY IN SHOCKING PLEA DEAL
🔹 Arcadia Mayor Eileen Wang, 58, pleads guilty to acting as illegal foreign agent 2020-2022 ⚖️🚨
🔹 Ran fake "U.S. News Center" website spreading Beijing propaganda with ex-fiancé "Mike" Sun 📰🇨🇳
🔹 Posted pre-written Chinese government essays denying Xinjiang genocide allegations 📄❌
🔹 Reported back to PRC handlers with screenshots showing propaganda reach statistics 📊📱
🔹 Faces 10 years prison while Sun already sentenced to 4 years for espionage 🏛️⛓️
"Thank you leader" - her actual messages to Chinese spymasters exposed! 💬😱
How many more sleeper agents hold American offices?! 🇺🇸🔍
#USNews#espionage
@america
🍿 Cameron Diaz breaks her retirement and returns to action with Jamie Foxx in 'Back in Action'!
📆Release Date: January 17, 2024
🎭Genre: #Action · #Comedy · #Espionage
🎬 I can't contain my excitement: Cameron Diaz returns to the big screen after 11 years alongside Jamie Foxx in 'Back in Action'. In this adrenaline-fueled espionage comedy, they play a pair of former CIA agents who must get back in the game when their cover is blown. 🔥💥
The most interesting thing is seeing Diaz and Foxx together again after 'Any Given Sunday' and 'Annie'. Plus, the cast is impressive: Glenn Close from 'Fatal Attraction', Kyle Chandler from 'Super 8', and Andrew Scott from 'Sherlock'. Directed by Seth Gordon, the genius behind 'Horrible Bosses'. This is a comeback you won't want to miss! 🎉🎥
🍿 The Phoenician Scheme: Benicio del Toro, a Nun, and Six Plane Crashes ✈️😵💫
📆Release: May 30, 2025
🎭Genre: #DarkComedy · #Espionage · #Action
🍿Follow movie
Wes Anderson (The Grand Budapest Hotel,Asteroid City) is back at his most eccentric: Benicio del Toro leads this visual satire as a bruised and armed tycoon who hands over his empire to his daughter, a knife-wielding nun played by Mia Threapleton (yep, Kate Winslet’s daughter). The cast is wild: Tom Hanks, Bryan Cranston, Richard Ayoade, Scarlett Johansson, Cumberbatch, and even Michael Cera in peak “Wes mode.”
Shot in Germany with a score by Alexandre Desplat, the film oozes Anderson’s signature nostalgic absurdity, but with a sharp rhythm that echoes his best work. Sure, the aesthetic is familiar, but when Wes nails it, it’s not formula, it’s pure style. And this one smells like a full-blown comeback. 🎨💣
U.S. Navy engineer, wife charged with selling submarine secrets
A U.S. Navy nuclear engineer and his wife were charged with selling secret information about nuclear submarines to an undercover FBI agent who posed as an operative for a foreign country, according to the Justice Department.
#US#Navy#Espionage#News#Reuters
Subscribe: http://smarturl.it/reuterssubscribe
Reuters brings you the latest business, finance and breaking news video from around the globe. Our reputation for accuracy and impartiality is unparalleled.
Get the latest news on: http://reuters.com/
Follow Reuters on Facebook: https://www.facebook.com/Reuters
Follow Reuters on Twitter: https://twitter.com/Reuters
Follow Reuters on Instagram: https://www.instagram.com/reuters/?hl=en
➖@reutersworldchannel➖
【Breaking】#MatthewTrickett, involved in the #HongKongEconomicandTradeOffice espionage case, found dead. UK police confirmed that Trickett, granted bail and due to appear in court on Friday, was discovered deceased in a park in Maidenhead, UK, on Sunday (19th). Preliminary investigations label the cause of death as "unknown." #Espionage#UKPolice
Jeffrey Epstein nebol zakladateľom siete. Bol dedičom.
Skrytou pravdou je, že táto vydieračská sieť nevznikla v 90. rokoch. Bolo to „spravodajské dedičstvo “ odovzdávaná z otca na dcéru.
Ghislaineiným otcom bol Robert Maxwell, mediálny magnát a legendárny superšpión Mossadu.
Operácia začala s ním: zbieraním „kompromitujúcich materiálov“ na politikov pre Izrael.
Keď zomrel a bol pochovaný v Jeruzaleme so štátnym pohrebom, na ktorom sa zúčastnili šéfovia spravodajských služieb, jeho dcéra prevzala „rodinný podnik“ s Epsteinom.
Nebolo to len obchodovanie s ľuďmi. Je to desaťročia trvajúca vydieračská operácia sponzorovaná štátom.
#EpsteinFiles#RobertMaxwell#GhislaineMaxwell#Mossad#Espionage#History
@casusbellihistory