Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
#Resistenza oggi è opporsi a tutto questo, rendersene #liberi.
È questo il vero #fascismo: imporre il degrado agli occhi dei nostri figli e raccontarlo come emancipazione.
Questa è la vera #dittatura: offuscare le rivendicazioni sociali, nascoste da una bandiera cucita con anomia e squallore.
Questa è la vera #violenza: depravazione sponsorizzata dalle multinazionali.
Meglio qualsiasi altra cosa.
https://x.com/SavinoBalzano/status/1890336882346664431?t=76VvEwI_ntFip5o3QAUrzQ&s=19
#Scalfarotto riesce a paragonare il dialogo tra #Trump e #Putin al patto Ribbentrop-Molotov. Si tratta di quello siglato nel '39 tra Hitler e Stalin che, impegnandosi reciprocamente alla non aggressione (e a qualcosa di più, che ancora oggi imbarazza certi sinistri), si spartirono la #Polonia.
Per carità, ai paralleli strampalati siamo stati abituati in questi anni di #guerra: ci hanno ripropinato ossessivamente la Conferenza di Monaco del '38, l'#appeasement di Neville #Chamberlain, le citazioni di Winston #Churchill che stanno sempre bene.
Tutte puttanate, ma quella di #IvanScalfarotto forse davvero merita il primo premio: #DonaldTrump e #VladimirPutin dialogano per porre fine a una guerra alimentata da progressisti e liberali occidentali e lui li paragona ai due dittatori che diedero il via alla Seconda Guerra Mondiale. Hai vinto Ivan: come possiamo intitolarlo il suo premio? qualche idea?
Quelli che hanno soffiato sul fuoco per due anni, parlo in generale, rischiando davvero la deflagrazione di un conflitto totale e nucleare, hanno ancora il coraggio di parlare e di dare sciocche lezioni di storia. Una storia che, se va bene, hanno studiato su La Repubblica.
Ciò che abbiamo oggi sotto gli occhi è il risultato della totale assenza di visione degli ultimi anni: dell'ideologia degli scemi che parlavano della guerra di civiltà, dello scontro tra #democrazia e #dittatura, di quello tra #libertà e barbarie. Le ragioni del conflitto sono sempre state altre, decisamente più prosaiche, e oggi lo vediamo nitidamente: dopo aver causato un milione di morti, dopo aver avvelenato un paese (anche con le armi occidentali) che tale resterà per decenni, probabilmente anche di più.
È pazzesca la totale assenza di dignità in certi soggetti: l'#UE ancora farnetica di un suo coinvolgimento. Non ci sarà: non conteremo nulla.
Ogni volta che qualcuno ha provato a dialogare con Putin è stato coperto di insulti, persino sanzionato. Ha totalmente ragione #Orban: la partecipazione alle trattative devi meritartela e non non ce la meritiamo. Non dopo aver leccato per anni le suole di #Biden.
Abbiamo lasciato che fanatiche invasate come #VonDerLeyen e #Kallas guidassero la nostra agenda, a proposito di patriarcato. Hanno farneticato per anni di sconfitta della Russia, di lotta fino alla vittoria finale.
Oggi #USA, #Russia e #Cina dialogano senza di noi, anche senza la #NATO (guidata da un altro ciarlatano che immaginava di poter dire la sua dinanzi alla volontà statunitense): arrivano persino a immaginare lo stanziamento delle loro truppe sul territorio ucraino. E ne parlano senza l'#Ucraina!
#Zelensky dichiara il suo dispiacere per il mancato coinvolgimento: pare un ragazzino escluso da una festa di compleanno. Una roba deprimente, soprattutto se rimandiamo la memoria alla narrazione della nostra stampa e della nostra televisione che per anni lo ha paragonato a un eroe di guerra. Uno spettacolo oltre il pietoso.
Chi vanegga di un coinvolgimento europeo o di #Kiev alla trattativa non si rende conto che quest'ultima è già cominciata, anzi, probabilmente è già finita.
Nessuna paura, ce ne accorgeremo presto, noi siamo gli idioti a cui il cameriere consegna il conto alla fine del pasto: prego, si accomodi, la cassa è da quella parte.