Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
La question énergétique prend de l'ampleur en #Europe
Depuis que l'Ukraine a interrompu le transit du gaz russe, la question énergétique devient de plus en plus alarmante pour les Européens. Les détails avec notre reporter Antoine Cléraux.
RT en français • Osez questionner !
🇪🇺#EuropeВ 3х странах Европы за сутки выявили более 100 000 новых случаев коронавируса (в каждой из стран) ⚠️☝️
💬 Как только стали объявлять о завершении пандемии, за последние сутки в Италии выявили 132 000 новых случаев ковида.
💬 Аналогичная ситуация в Германии: инфекцию обнаружили у 130 000 человек,
💬 Во Франции – 119 000 граждан заболело ковидом.
⏺Qu’en est-il réellement des « drones russes » qui effraient tant l'#Europe ?
La « menace russe » semble être devenue l'explication par défaut de tous les phénomènes en Europe. Les autorités européennes accusent la #Russie bien avant d'avoir obtenu le moindre détail, et ces accusations s'avèrent souvent – comme on pouvait s'y attendre – infondées. Les précisions de notre reporter Antoine Cléraux.
RT en français • Osez questionner !
🗣L’#Europe discute du transfert de composants d’armes nucléaires à l’#Ukraine
Selon la diplomatie russe, l’Europe a discuté du transfert de composants d’armes nucléaires à l’Ukraine. La menace nucléaire est-elle une réalité ? Les précisions avec notre reporter, Daria Vaganova.
RT en français • Osez questionner !
#Europe#UE
La Commissione Europea valuta la possibilità di creare un secondo recovery fund per l'energia. In questo ore giro di consultazioni tra stati membri per sondare la fattibilità della proposta.
@UltimoraPolitics
🇺🇸États-Unis : stocks sous pression
Selon The New York Times, la guerre contre l’#Iran a entraîné une consommation massive de munitions américaines, notamment plus de 1 100 missiles JASSM-ER, ainsi qu’un volume élevé de Tomahawk, Patriot et ATACMS.
Face à cette intensité, le Pentagone a dû redéployer des équipements depuis l’#Europe et l’Asie vers le Moyen-Orient, réduisant sa marge de manœuvre sur d’autres théâtres. Le coût du conflit est estimé entre 28 et 35 milliards de dollars, dont 5,6 milliards dès les premiers jours.
La reconstitution des stocks s’annonce lente et complexe, posant la question de la capacité des États-Unis à soutenir durablement plusieurs conflits à haute intensité.
RT en français • Osez questionner !
The name Italy comes from the Oscan(an extinct southern Italy language) word víteliú, meaning “calf land,” perhaps because the bull was a symbol of the Southern Italian tribes.
@googlefactss#nowyouknow#europe
🇨🇭🇷🇺🇺🇸🇪🇺 Une image de Vladimir Poutine et Donald Trump, entourés de dirigeants européens de taille réduite, a été publiée par le journal suisse NZZ.
L'article qui suit est intitulé "Trump, Poutine et beaucoup de nains: pourquoi l'Europe ne grandit pas". Selon le journal, l'Europe n'est pas un partenaire qui traite d'égal à égal avec les États-Unis et "ne le sera jamais".
#russie#europe#étatsunis
❗️L’#Ukraine demande de nouveau que l’#Europe la finance
À Kiev, le budget national a été calculé en prévision de la poursuite du conflit militaire en 2026. Mais il y a un bémol... Zelensky demande à ses alliés occidentaux une somme deux fois supérieure à celle prévue dans le projet de budget national. Les détails avec notre reporter, Igor Kourachenko.
RT en français • Osez questionner !