Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
🪂Newairdrop ~ Iron Titanium ✅️
💲 Reward: worth of 55,000 $TITAN + for each 10,000 #TITAN and top 300 refer and earn 600$usdt each more referrals
🌐WebsiteTiTan
💎 Presents Ratings: ⭐⭐⭐
👑Winners: 20,000 people valid participants will be randomly rewarded.
➡️Airdrop Bot For Iron Titanium
↪️ Join their Telegram group. and Telegram Channel. (Mandatory:)
↪️ Follow their Twitter, like and retweet the pinned post by tagging 3 of your friends. (Mandatory:)
↪️ Follow their Instagram
↪️ Submit your details to the Airdrop bot.
ℹ️Distribution date: announced by the project is the Immediately 55,000 Titan Withdraw .
🌎 Saturn’s moon Titan is the only place in the Solar System, other than Earth, with stable liquid lakes on its surface. These lakes are filled not with water, but with methane and ethane, and cover hundreds of square kilometers. ✨
#astronomy⚡#planets⚡#titan
👉subscribe Interesting Planet
👉more Channels
Голова для очень тяжёлых камер #titan ну так позиционируют Стоимость порядка 55 000 долларов, поставки будут в августе #bts#оборудование#newsfidllercom
🇬🇧Bloodborne_Free Comic Book Day #01
🇷🇺Передающийся через кровь_День Бесплатных Комиксов #01
Действие происходит в мире Bloodborne.
Город Ярнам, древний готический мегаполис в мире богов и монстров, пострадал от кошмарной чумы.
Церковь Исцеления, известная своими чудодейственными препаратами на основе крови, не знает, откуда взялась таинственная болезнь Пепельной Крови и как предотвратить её распространение среди жителей Ярнама.
По улицам в поисках зверей бродят Охотники - первая линия обороны от безумия. Но не всех монстров так легко распознать – в домах и сердцах людей страх и горе могут породить новый тип мучений…
#комикс#comics#bloodborne
#titan
🪐 Beneath the thick ice of Saturn’s moon Titan, scientists suspect there is a hidden ocean of liquid water mixed with ammonia, possibly deeper than 50 kilometers below the surface. Titan’s dense atmosphere, rich in methane, and its secret subsurface sea make it one of the most fascinating candidates for harboring life far from Earth. ✨
#moons⚡#oceans⚡#titan⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 NASA's upcoming Dragonfly mission will send a robotic drone to Saturn’s moon Titan, using a nuclear-powered rotorcraft to explore its thick atmosphere and icy surface. This spacecraft will hop from site to site in search of complex organic molecules, pushing the boundaries of interplanetary exploration beyond anything ever attempted in the outer solar system. ✨
#spaceships⚡#exploration⚡#Titan⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
🪐 Saturn’s moon Titan is surrounded by a thick atmosphere richer in nitrogen than Earth’s, and it’s the only moon in our solar system with dense clouds and surface lakes made of liquid methane and ethane. This unique chemistry, combined with Titan's size—larger than the planet Mercury—makes it a standout among the many moons of the giant planets, offering a world where clouds, rain, and rivers exist far from the Sun. ✨
#giantplanets⚡#titan⚡#atmosphere⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🇬🇧Dark Souls_The Willow King #1-4
🇷🇺Темные Души_Ивовый Король #1-4
Могучий король Утрель однажды возжёг пламя, но прежде его слуга рыцарь Герад не смог этого сделать, был поглощён пламенем и обратился в прах. Теперь пришла пора снова возжечь пламя, но Утрель воспротивился этому, став Ивовым Королём. Герад же возродился Негорящим и теперь должен объединить под своим командованием трёх могучих воинов. Они отправятся в логово Ивового Короля, чтобы заставить того исполнить долг перед королевством и человечеством.
#комикс#comics#темныедуши#darksouls
#titan