Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
Hırvatistan’dan gelen kursiyerlerimiz, Keşan’daki Baykar Uçuş Eğitim Merkezi’nde düzenlenen #BayraktarTB2 SİHA eğitimini başarıyla tamamlayarak mezun oldu.
Mezun olan kursiyerlerimizi tebrik ederiz. 🇹🇷🤝🇭🇷
Trainees from Croatia have successfully completed their #BayraktarTB2 UCAV training at the Baykar Flight Training Center in Keşan.
We congratulate our newly graduated trainees. 🇹🇷🤝🇭🇷
https://sosyal.teknofest.app/@baykartech/114993655653054300
Jandarma'nın Yanında, Gökyüzünde 10 Bin Saat! 🇹🇷✈️
Jandarma Genel Komutanlığı envanterinde 10.000 saat boyunca görev yapan J11 (S18) kuyruk numaralı #BayraktarTB2 SİHA’mız emekliye ayrıldı. Terörle mücadeleden sınır güvenliğine, emniyet ve asayişten stratejik altyapıların korunmasına kadar kritik görevlerde gökyüzündeydi.
J60 kuyruk numaralı yeni bir #BayraktarTB2 SİHA'yı Jandarma Genel Komutanlığımıza hediye ettik.
10,000 Hours in the Skies, Serving the Gendarmerie 🇹🇷✈️
The #BayraktarTB2 UCAV with tail number J11 (S18) has been retired after successfully completing 10,000 flight hours in the inventory of the Gendarmerie General Command. From counterterrorism to border security, law enforcement to the protection of strategic infrastructure, it played a vital role in critical missions.
As part of our continued support, we have donated a new #BayraktarTB2 with tail number J60 to the Gendarmerie.
Yılmadan, yorulmadan göklerde 1️⃣.0️⃣0️⃣0️⃣.0️⃣0️⃣0️⃣ saat! 🇹🇷
Tirelessly soaring through the skies for 1️⃣.0️⃣0️⃣0️⃣.0️⃣0️⃣0️⃣ hours! 🇹🇷
#BayraktarTB2✈️🚀
▶️HD Video
Milli Kanatlar Hırvatistan Semalarında! ✈️
Baykar ile Hırvatistan Savunma Bakanlığı arasında #BayraktarTB2 SİHA ihracatını kapsayan tarihi anlaşma Zagreb’de imzalandı. 🇹🇷🇭🇷
Bu anlaşma ile #BayraktarTB2, NATO ve Avrupa Birliği üyesi bir ülkenin daha envanterine girdi.
Hayırlı olsun.
Our Indigenous Wings in the Croatian Skies! ✈️
A historic agreement between Baykar and the Croatian Ministry of Defense for the export of #BayraktarTB2 UCAV was signed in Zagreb. 🇹🇷🇭🇷
With this agreement, #BayraktarTB2 has entered the defense inventory of yet another NATO and EU member state.
Polonya #BayraktarTB2 Sistemi Lojistik Destek Sözleşmesi kapsamında NSPA Genel Direktörü ve Polonya Savunma Bakanlığı temsilcilerinin katılımıyla Özdemir Bayraktar Milli Teknoloji Merkezimizde imza töreni gerçekleştirdik.
🇹🇷🤝🇵🇱
As part of the Poland Bayraktar TB2 System Logistics Support Contract, we held a signing ceremony at the Özdemir Bayraktar National Technology Center with the participation of the NSPA Director General, their accompanying delegation, and representatives from the Polish Ministry of Defense.
10.000 saatlik uçuş süresi ile ömür devrini tamamlayan, TSK envanterindeki S5 kuyruk numaralı #BayraktarTB2 İHA'mız vatani görevini hakkıyla yerine getirdi! 🇹🇷✈️
The Bayraktar TB2 UAV, with tail number S5, which was part of the Turkish military's inventory, has completed its service life after 10,000 flight hours, fulfilling its duty to the nation with distinction! 🇹🇷✈️
▶️HD Video
Dost ve kardeş ülke Kenya’dan gelen kursiyerlerimiz, Keşan’daki Baykar Uçuş Eğitim Merkezi'nde #BayraktarTB2 SİHA eğitimini başarıyla tamamlayarak mezun oldu.
Mezun olan kursiyerlerimizi tebrik ederiz.🇹🇷🤝🇰🇪
Trainees from our friendly and brotherly country, Kenya, have successfully completed their #BayraktarTB2 UCAV training at the Baykar Flight Training Center in Keşan and graduated. ✈️
We congratulate our newly graduated trainees.🇹🇷🤝🇰🇪