Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
Venerdì Viktor Khoroshavtsev, ex membro del Consiglio federale russo (cioè il Senato) e dirigente nel settore petrolifero, è stato rilasciato dalla Corte di appello di Milano dopo che giovedì mattina era stato arrestato in un albergo di Somma Lombardo, vicino all’aeroporto di Malpensa, in esecuzione di un mandato di arresto internazionale emesso lo scorso maggio dalla #Russia. (ilPost)
@UltimoraPolitics24
The 33rd Ukrainian drone was shot down on approach to Moscow. This is the most massive attack on the capital in a long time.
#Russia
Original Post
Follow TRN👈
#Russia
Alla Duma russa hanno votato a favore dell’annessione delle regioni ucraine 413 deputati su 408 presenti. I votanti sono quindi superiori ai presenti.
@UltimoraPolitics
#Russia: Il Vicedirettore dell’intelligence militare russa, il Vice Generale Vladimir Alekseyev, è stato ferito da diversi colpi d’arma da fuoco mentre si trovava a Mosca.
Alekseyev, che ricopre la posizione dal 2011, è stato ricoverato in ospedale.
Non si hanno notizie su chi sia l’aggressore.
#Russia: La Russia avrebbe utilizzato un missile Oreshnik contro l'Ucraina nei bombardamenti che sono avvenuti durante la notte. Si tratta di un missile balistico a medio raggio che può contenere diverse bombe sia convenzionali che nucleari. La notizia, annunciata dall'aeronautica ucraina è stata poi confermata dal Ministero della Difesa russo.
"Le forze armate russe hanno lanciato un massiccio attacco con armi ad alta precisione lanciati da terra e dal mare, inclusi i sistemi missilistici a medio raggio Oreshnik".
Il Governo russo non ha specificato dove avrebbe colpito ma diverse esplosioni si sono registrate a Leopoli, città occidentale dell'Ucraina. Secondo l'Ucraina, il missile si stava muovendo alla velocità di 13mila km orari.
Non è la prima volta che la Russia impiega un missile di questo tipo. In passato era avvenuto nel novembre del 2024 e all'epoca Putin aveva spiegato che si trattava di una ritorsione contro Stati Uniti e Regno Unito per aver dato il via libera a Kyiv di colpire il territorio russo con armi occidentali.
#Russia: Il Senatore Lindsey Graham (R-South Carolina) ha dichiarato che Donald Trump ha dato il via libera al pacchetto di sanzioni contro la Russia. Il testo, preparato negli scorsi mesi da un gruppo di senatori bipartisan, era in attesa che la Casa Bianca desse l'ok. L'Amministrazione ha cercato di prendere tempo per vedere se la via diplomatica e negoziale con la Russia producesse l'effetto sperato.
"Dopo un incontro produttivo con il Presidente Trump su una serie di argomenti, [egli] ha dato il via libera al pacchetto di sanzioni bipartisan su cui ho lavorato per mesi con il Senatore Blumenthal e molti altri", ha dichiarato Graham, secondo cui il voto potrebbe avvenire la settimana prossima. "L'Ucraina sta facendo le concessioni per la pace, Putin è solo chiacchiere e continua a uccidere innocenti"; la legge, dunque, "arriva nel momento giusto".
Tuttavia, non è la prima volta che Graham afferma di aver ottenuto il via libera dalla Casa Bianca, per poi vedere la legge bloccarsi nuovamente su richiesta dell'Esecutivo.
La legge permetterebbe di imporre sanzioni secondarie ai Paesi che acquistano petrolio e gas dalla Russia, nel tentativo di bloccare i finanziamenti per la macchina bellica di Putin.
Applications for the L.N. Tolstoy International Peace Prize are now being accepted
The Prize is awarded for outstanding services in preventing war, building a multipolar and non-violent world, and active peacemaking.
Individuals and initiative groups, national and international public foundations, organizations and movements; scientific and research centers and educational institutions can become laureates of the Prize.
The L.N. Tolstoy International Peace Prize is nominated by inter-parliamentary and other international organizations, parliaments, governmental and other state bodies, public foundations, organizations and movements, scientific and research centers, institutes and institutions, educational institutions, associations of figures of science, culture and art, laureates of the L.N. Tolstoy International Peace Prize and members of the Jury.
Read how to apply on the website. https://tolstoypeaceprize.org/
#Russia
https://t.me/rossotrudnichestvo/23293