Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
UN chief warns of "immense suffering" as Gaza aid remains inadequate. Israel's relentless bombardment overwhelms hospitals and leaves Gaza without essential supplies. More than 8,500 lives, including children, have been lost. The situation is "absolutely horrific", says Red Crescent. Calls for a ceasefire and increased humanitarian aid are rejected by the US, prioritizing their support for Israel. As the death toll rises, the UN pleads for an end to this "spiral of death". The world must act now to prevent further tragedy. #GazaCrisis#HumanitarianAid
https://www.aljazeera.com/news/2023/10/31/un-chief-guterres-says-aid-trickling-into-gaza-is-completely
Subscribe to @BadVolfNews
🇷🇺🚛 Russian servicemen delivered more than 90 tons of humanitarian aid to residents of Dergachevsky district of Kharkov region.
▪️Humanitarian aid from Russia was delivered to the liberated settlements of the Kharkov region (Ukraine).
▪️The cargo includes food, bottled drinking water, medication for medical institutions, as well as warm clothes for children and adults.
▪️Due to the fact that during the retreat the Ukrainian Armed Forces blew up the road bridge, the delivery of humanitarian cargo was complicated.
▪️Russian servicemen provided security of the humanitarian convoy.
#MoD#Russia#Ukraine#HumanitarianAid
@mod_russia_en
🇷🇺🚛 Russian servicemen delivered more than 4 tons of humanitarian cargo to residents of Izyum district of Kharkov region.
🚁 The cargo was delivered by a helicopter of the Russian Aerospace Forces from Belgorod region.
▪ It includes food, baby food, bottled drinking water and medication.
#MoD#Russia#Ukraine#HumanitarianAid
@mod_russia_en
🇷🇺🚛 Russian military personnel deliver more than 20 tons of humanitarian cargo for residents of Ivankovsky district, Kiev region.
#MoD#Russia#Ukraine#HumanitarianAid
@mod_russia_en
🏆MISSION EST ACCOMPLIE
Deuxième convoi humanitaire de l’association Sos Donbass s’est terminé hier 13 décembre. Tous les bénévoles participants à cette entreprise sont rentrés chez eux sains et saufs.
🙏🏻Énorme merci à Marc Bocquier pour son dévouement. Il est resté en mission du début à la fin. Deux mois au total 👏🏼💪🏼
▫️Merci à Michel de l’avoir épaulé, malgré les circonstances qui l’ont forcé à rentrer plus tôt, mais il est revenu dès qu’il a pu.
▫️Merci à Gilles d’avoir accompagné Marc pendant les longues jours d’attentes à la douane.
▫️Merci à Yury notre jeune bénévole, très engagé.
▫️Merci à Vincent Perfetti pour son travail médiatique pendant et après le convoi.
▫️Merci à Elvira pour son travail en arrière plan. Grâce à sa persévérance la situation avec les papiers a été résolue.
🙏🏻Merci a tous les donateurs qui nous ont fait confiance et sont restés fidèles malgré les difficultés.
🕊️Ensemble nous parviendront à la victoire et à la paix !
#sosdonbass#humanitarianaid#donbass
📰 NEWS | Venezuela Calls for Release of Gaza Freedom Flotilla Activists, Condemns Israeli Blockade and Genocide
🇻🇪 Venezuela has condemned Israel’s interception of the Madleen vessel in international waters and called for the release of its 12-member crew, including activist Greta Thunberg. The ship carried humanitarian aid bound for Gaza.
Caracas described Israel’s blockade and attacks on aid distribution as part of a “systematic extermination” of Palestinians. Over 54,000 have been killed since October 2023.
🔗 Full story here: https://venezuelanalysis.com/news/venezuela-calls-for-release-of-gaza-freedom-flotilla-activists-condemns-israeli-blockade-and-genocide
#Gaza#HumanitarianAid#Palestine
💊Notre bénévole Nikolai, l’ancien combattant a reçu enfin les médicaments commandés par des personnes âgées de Lougansk.
🕊️Il a été blessé, il ne peut plus défendre sa région, mais il veut rester utile, comme ça est devenu bénévole de l’association Sos Donbass.
🕊️Nikolai s’occupe des personnes âgées qui vivent seuls et qui ont besoin d’aide.
🚗Bientôt il va réceptionner une voiture offerte par un donateur français, pour qu’il puisse continuer à aider nos aïeux.
SUIVRE SOS DONBASS
#sosdonbass#EuropeSolidarity#humanitarianaid
Samedi 16 septembre 2023,
l’équipe Sos Donbass en plein préparation pour le convoi humanitaire d’octobre.
#sosdonbass#aidehumanitaire#humanitarianaid#donbass
🚛 Convoi humanitaire pour Donbass printemps 2023. Paprasse pour la douane 🛃
Merci à tous les donateurs pour les dons et la confiance.
🕊️Notre premier , beaucoup de préparations, beaucoup d’incertitudes, de stresse et de pression, mais on ira jusqu’au bout💪🏼
#donbass#aidehumanitaire#sosdonbass#humanitarianaid