TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #22 · 19 јан.

Заметка начинающим, которые часто сталкиваются с подобной непоняткой. Ситуация следующая, есть список файлов: 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

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #freepeoplefirst

当前筛选 #freepeoplefirst清除筛选

Поддержите нашу кампанию в соц. сетях! Мы, антивоенные активисты, правозащитники, все, кто выступает против войны, в свете приближающейся встречи президента США Дональда Трампа и Владимира Путина, опасаемся, что эта встреча может привести к заключению тактического краткосрочного соглашения, которое может нанести непоправимый ущерб Украине, Европе и международной безопасности, а судьбы людей, находящихся в плену, не станут приоритетом соглашения сторон. Мы хотим привлечь внимание к жизни всех и каждого незаконнозадержанного – украинских гражданских, депортированных украинских детей, украинских военнопленных и российских политзаключенных, оказавшихся в заключении за свою антивоенную позицию. Мы приглашаем вас присоединиться к нашему флешмобу, чтобы вернуть внимание к жизням людей и требовать безусловного освобождения всех узников этой войны. Напишите Free people first на ладони вашей руки и выложите фотографию в социальные сети. Присылайте ваши фото в бот t.me/People1rst_bot. ————— Підтримайте нашу кампанію в соцмережах! Ми, антивоєнні активісти, правозахисники та всі, хто виступає проти війни, з огляду на майбутню зустріч президента США Дональда Трампа та Володимира Путіна, переймаємося, що ця зустріч може призвести до укладення тактичної короткострокової угоди, яка може завдати непоправної шкоди Україні, Європі та міжнародній безпеці, а доля полонених не буде пріоритетом для сторін. Ми хочемо привернути увагу до життя кожного й кожної з числа незаконно поневолених — українських цивільних осіб, депортованих українських дітей, українських військовополонених та політичних в'язнів, які були ув'язнені за свою антивоєнну позицію. Ми запрошуємо вас приєднатися до нашого флешмобу, щоб привернути увагу до життя людей і вимагати безумовного звільнення всіх бранців російської війни в Україні. Напишіть Free people first на долоні своєї руки та викладіть фото в соціальні мережі. Надсилайте свої фото в бот t.me/People1rst_bot. ————— Support our campaign in social media We, anti-war activists, human rights defenders, and all those who oppose war, in light of the upcoming meeting between US President Donald Trump and Vladimir Putin, fear that this meeting could lead to a tactical short-term agreement that could cause irreparable damage to Ukraine, Europe and international security, and that the fate of those held captive will not be a priority for the parties to the agreement. We want to draw attention to the lives of each and every one of those illegally detained — Ukrainian civilians, deported Ukrainian children, Ukrainian prisoners of war and Russian political prisoners who have been imprisoned for their anti-war stance. We invite you to join our flashmob to draw attention back to people's lives and demand the unconditional release of all prisoners of this war. Write Free people first on the palm of your hand and post a photo on social media. Send your photo to our bot t.me/People1rst_bot. #People1st#BringPeopleHomeFirst#ЛюдиПревышеВсего#PeopleAreNotNegotiable#PeopleAreKey#ЛюдиKлючові#FreePeopleFirst#FreeThemAll