Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
Il cancelliere tedesco Olaf #Scholz non ha ottenuto la fiducia al Bundestag aprendo la strada alle elezioni anticipate a febbraio. Il cancelliere ha ottenuto 207 voti a favore, 394 voti contro. In 116 si sono astenuti. Per ottenere la fiducia Scholz avrebbe dovuto ottenere almeno 366 voti.
@UltimoraPolitics
Migranti, Giorgia #Meloni a Olaf #Scholz: “Mi auguro che gli esatti contorni di queste iniziative del tuo governo potranno essere meglio chiariti, e sarò lieta di discutere di persona della questione alla prima occasione utile, a partire dal Vertice Ccp e dal Consiglio Europeo di Granada il prossimo 5 e 6 ottobre” e aggiunge “occorre concentrarsi nel costruire soluzioni strutturali al fenomeno migratorio”.
@UltimoraPolitics
Migranti, Giorgia #Meloni a Olaf #Scholz: "Ѐ ampiamente noto che la presenza in mare delle imbarcazioni delle ong ha un effetto diretto di moltiplicazione delle partenze di imbarcazioni precarie che risulta non solo in ulteriore aggravio per l'Italia, ma allo stesso tempo incrementa il rischio di nuove tragedie in mare"
@UltimoraPolitics
Migranti, Giorgia #Meloni scrive al cancelliere tedesco Olaf #Scholz: "Ho appreso con stupore che il tuo governo - in modo non coordinato con il governo italiano - avrebbe deciso di sostenere con fondi rilevanti ong impegnate nell'accoglienza ai migranti irregolari sul territorio italiano e in salvataggi nel Mare Mediterraneo. Entrambe le possibilità suscitano interrogativi"
@UltimoraPolitics
ANSA - Il cancelliere tedesco Olaf #Scholz ha esortato il presidente russo Vladimir #Putin a ritirare le truppe dall'Ucraina e a negoziare con Kiev. Lo annuncia il governo tedesco. #Scholz ha parlato con il presidente ucraino #Zelensky prima di sentire il…
ANSA - Il cancelliere tedesco Olaf #Scholz ha esortato il presidente russo Vladimir #Putin a ritirare le truppe dall'Ucraina e a negoziare con Kiev. Lo annuncia il governo tedesco. #Scholz ha parlato con il presidente ucraino #Zelensky prima di sentire il leader russo.
@UltimoraPolitics
La polizia tedesca ha fatto irruzione nell’abitazione dello scrittore, giornalista ed ex parlamentare del partito di Unione Cristiano-Democratica (CDU) Jürgen Todenhöfer, a Monaco di Baviera, per una serie di post sui social in cui criticava il primo ministro israeliano Benjamin Netanyahu.
Secondo quanto riferito da Todenhöfer, gli agenti hanno confiscato telefoni e dispositivi digitali dopo aver monitorato la sua abitazione. “Un tribunale tedesco ha avviato un procedimento penale contro di me, emettendo un mandato di perquisizione e di sequestro di tutti i miei dispositivi, perché ho criticato duramente Netanyahu e Scholz”, ha dichiarato lo scrittore.
Nel post X al centro dell’indagine, Todenhöfer scriveva: "Signor Netanyahu, la sua coscienza non protesta mai quando fa ai palestinesi quello che i maledetti nazisti hanno fatto agli ebrei?".
#germany#netanyahu#scholz
Retour à l'histoire
Les tentatives de l’#Occident de réécrire l’histoire n'étonnent plus personne, sauf que cette fois-ci, il s’agit d’une tragédie mondiale, et d'un exploit pour toute l’humanité. Pour Olaf #Scholz, c’est aux États-Unis que l’#Allemagne doit sa liberté. Notre reporter Igor Kourachenko nous rejoint avec toutes les précisions.
RT en français • Osez questionner !
🇩🇪#Germania - Il cancelliere tedesco Olaf #Scholz ha rifiutato nettamente la proposta del ministro delle Finanze, Christian #Lindner, di indire nuove elezioni. - BILD
@UltimoraPolitics