Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
🌎 In the Himalayas, the snow leopard’s wide, fur-covered paws act like natural snowshoes, distributing weight and keeping it from sinking on deep mountain snow. ✨
#wildlife⚡#adaptation⚡#Himalayas
👉subscribe Interesting Planet
🌎 The larva of the Himalayan glacier midge survives temperatures as low as -17°C by producing special proteins that act like antifreeze, preventing ice crystals from damaging its tissues. This adaptation lets it thrive in some of the coldest, highest places on Earth. ✨
#insects⚡#adaptation⚡#Himalayas
👉subscribe Interesting Planet
🌍 The Himalayas are rising by about 5 millimeters each year as the Indian and Eurasian plates continue to collide. This ongoing uplift makes these mountains among the youngest and fastest-growing on Earth. ✨
#mountains⚡#Himalayas⚡#tectonics⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌎 Bar-headed geese cross the Himalayas during migration, flying at altitudes above 7,000 meters. These birds have special hemoglobin that helps them absorb oxygen efficiently in thin air. Their migration route includes nonstop flights of up to 1,600 kilometers. ✨
#migration⚡#birds⚡#Himalayas
👉subscribe Interesting Planet
👉more Channels
🌎 In the soaring skies of the Himalayas, the bar-headed goose migrates over Mount Everest, flying at altitudes above 8,000 meters—higher than any other bird. Special hemoglobin in their blood enables them to absorb oxygen efficiently in the thin air, making this epic journey possible each year. ✨
#migration⚡#birds⚡#Himalayas
👉subscribe Interesting Planet
🌎 Mount Everest's border runs exactly along the Nepal-China divide, making its summit shared by two countries. Hikers can reach the top from either side, but the official border marker is a small metal pole embedded in the ice at 8,848 meters—the highest international boundary on Earth. ✨
#borders⚡#geography⚡#Himalayas
👉subscribe Interesting Planet
👉more Channels
🌍 The Eastern Himalayas are a biodiversity hotspot with over 10,000 plant species, and nearly a quarter of them are found nowhere else, despite covering less than 2% of India’s total area. ✨
#biodiversity⚡#Himalayas⚡#ecology⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 The Kalapani region is a small Himalayan area claimed by both India and Nepal. Its strategic location at the tri-junction with China makes it a unique hotspot of geopolitical geography. ✨
#borders⚡#dispute⚡#Himalayas⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌎 High in the Himalayan valleys, the Himalayan blue poppy blooms with dazzling blue petals. Its color comes from unique pigments that protect it from intense ultraviolet sunlight found at high altitudes. ✨
#flowers⚡#adaptation⚡#Himalayas
👉subscribe Interesting Planet
🌍 In Himalayan valleys, local communities have revived ancient glacial water channels called "kuls" to guide meltwater for farming. These living systems adapt to changing ice and rainfall each year. ✨
#Himalayas⚡#adaptation⚡#irrigation⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌎 The Himalayan honey bee builds its hives on high cliffs, crafting giant honeycombs and producing reddish honey with unique psychoactive properties prized by local tribes. ✨
#honeybee⚡#Himalayas⚡#nature
👉subscribe Interesting Planet
🌎 Some Himalayan glaciers are “surge glaciers,” moving up to 100 times faster than normal for short periods. These icy rivers can suddenly speed up, advancing kilometers in months instead of centuries—reshaping valleys with astonishing power. ✨
#glacier⚡#Himalayas⚡#earth
👉subscribe Interesting Planet