Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
⚡️Soat 19:00 da Premyera, YouTube kanalimizga obuna bo'lib qo'ying!
Kanal: 👉https://www.youtube.com/@SEEYOUZBEKISTAN/videos
#QuyoshPechi#Interstellar
@seeyouzbekistan • O’zbekistonni biz bilan kashf eting!
🌎 Exploring the edge of the solar system, NASA’s Voyager 1 spacecraft became the first human-made object to enter interstellar space in 2012. It carries instruments to measure cosmic rays, magnetic fields, and particles beyond the Sun’s influence—data still transmitted from over 24 billion kilometers away. ✨
#space⚡#voyager⚡#interstellar
👉subscribe Interesting Planet
👉more Channels
🪐 Some of the most mysterious worlds in our galaxy are rogue planets like CFBDSIR J214947.2-040308.9, a giant planet drifting alone in interstellar space without a star to orbit. Detected about 130 light-years from Earth, this lonely world glows with leftover heat from its birth and is studied in infrared light, revealing that even without a sun, planets can wander the dark, silent stretches between stars. ✨
#rogueplanets⚡#interstellar⚡#giantplanets⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 The interstellar probe mission concept led by NASA aims to send a spacecraft beyond our solar system, much farther than Voyager 1, to distances over 1,000 astronomical units (AU) from the Sun. This ambitious plan would explore the uncharted space between stars and gather data about the outer regions of our solar system and the nearby interstellar environment, including the edge where the solar wind from our Sun blends into the thin gas found between stars. ✨
#interstellar⚡#travel⚡#NASA⚡#exploration⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 In 1977, the Voyager 2 spacecraft was launched carrying a special message for any potential alien civilizations—a Golden Record encoded with music, greetings in 55 languages, and sounds from Earth. Voyager 2 is now over 20 billion kilometers from our planet, traveling beyond the edge of the solar system and continuing its silent journey through interstellar space. ✨
#aliens⚡#voyager⚡#interstellar⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 In 1977, the Voyager 1 spacecraft left Earth carrying a "Golden Record"—a carefully crafted message with sounds and images from our planet, designed in the hope that someday it might be found by aliens in another star system. Now Voyager 1 is more than 24 billion kilometers away, continuing its silent journey through interstellar space, making it humanity’s most distant attempt to reach out to any extraterrestrial civilization. ✨
#aliens⚡#voyager⚡#interstellar⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 NASA and ESA are collaborating on future missions to develop solar sail technology—a method that harnesses sunlight for propulsion—to power lightweight spacecraft toward nearby stars like Alpha Centauri. Unlike rockets, solar sails use the gentle push of photons (tiny particles of light) from the Sun to gradually accelerate, making it possible for small probes to reach interstellar space without carrying any fuel onboard. ✨
#spaceships⚡#interstellar⚡#solar⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 The future of interstellar travel could be shaped by the use of atomic clocks and navigation systems like NASA's Deep Space Atomic Clock, tested aboard the Earth-orbiting DSAC mission. Ultra-precise atomic clocks allow spacecraft to autonomously navigate across billions of kilometers, setting the stage for robotic probes to travel to distant stars such as Alpha Centauri and safely communicate their position back to Earth. ✨
#interstellar⚡#technology⚡#navigation⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 The future of interstellar travel could be shaped by experiments like NASA's Heliospheric Imager, which studies the vast region where the Sun's solar wind meets interstellar space—the heliopause. By understanding this distant boundary zone, where Voyager 1 crossed over 120 astronomical units from the Sun, scientists are learning how future spacecraft might navigate safely beyond our solar system and toward other stars like Alpha Centauri. ✨
#interstellar⚡#heliopause⚡#voyager⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels