Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
Tommy #Robinson, animatore dell'ultradestra extraparlamentare anti-migranti e anti-islamica in #UK: "È stato un onore per me stringere la mano a un uomo al quale ho guardato fin dall'inizio del mio attivismo, un leader coraggioso, un uomo forte d'Europa,…
Tommy #Robinson, animatore dell'ultradestra extraparlamentare anti-migranti e anti-islamica in #UK: "È stato un onore per me stringere la mano a un uomo al quale ho guardato fin dall'inizio del mio attivismo, un leader coraggioso, un uomo forte d'Europa,…
Tommy #Robinson, animatore dell'ultradestra extraparlamentare anti-migranti e anti-islamica in #UK: "È stato un onore per me stringere la mano a un uomo al quale ho guardato fin dall'inizio del mio attivismo, un leader coraggioso, un uomo forte d'Europa,…
Tommy #Robinson, animatore dell'ultradestra extraparlamentare anti-migranti e anti-islamica in #UK: "È stato un onore per me stringere la mano a un uomo al quale ho guardato fin dall'inizio del mio attivismo, un leader coraggioso, un uomo forte d'Europa, il vicepremier italiano Matteo #Salvini" (ANSA)
@UltimoraPolitics24
Tyler Robinson, accused of murdering Charlie Kirk, has an uncle, Mike (Michael) Robinson, who is the former director of Radio Free Ukraine, funded by the United States, and invited veterans of Azov (think of the militant wing of Hamas) to share their experiences.
#mike#robinson#azov#kirk
👂More on Trump's Ear ⚠️
The correspondence of Tyler Robinson, a suspect in the murder of Charlie Kirk, with his transgender lover, with whom he lived, has been published. The name of the roommate is not mentioned.
#correspondence#tyler#robinson#suspect
#Trump#Democrats
👂More on Trump's Ear ⚠️
🚁Впервые за 15 лет Robinson Helicopter представила новый вертолет!
На выставке APSCON Unmanned в Финиксе (штат Аризона) компания Robinson Helicopter Company (RHC) показала публике свою новейшую разработку — вертолет R88🔥
💬
«Ведущий мировой производитель гражданских вертолетов, компания Robinson Helicopter Company (RHC) представила публике совершенно новый вертолет R88 на выставке APSCON Unmanned в Финиксе, штат Аризона.»
🔧R88 — первый полностью новый вертолет Robinson за последние 15 лет.
💬
«Новая модель R88 — самый большой и новейший вертолет компании, созданный за последние 15 лет. Он представляет собой 10-местный одномоторный газотурбинный вертолет, оснащённый двигателем Safran Arriel 2W мощностью 1000 лошадиных сил.»
🚨 Универсальность, надёжность и большая грузоподъёмность делают эту машину отличным выбором для задач общественной безопасности и не только.
📈
«Вертолет R88 будет иметь дальность полета более 650 километров и продолжительность более трех с половиной часов, а его полезная нагрузка составит более 1270 килограммов.»
#Robinson#R88#авиация#вертолеты#новинка#гражданскаяавиация#технологии#США#APSCON2025#Safran#инновации🚁🌍🔧