Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
Live: Evacuation of hantavirus-hit cruise ship underway
A large-scale evacuation has started for passengers aboard a cruise ship stricken by a #hantavirus outbreak. The affected MV Hondius has anchored near Tenerife in Spain, where local health officials arranged orderly disembarkation. The viral outbreak has caused multiple infections and three fatalities. Asymptomatic travelers are prioritized for medical checks before being sent to the airport to return to their nations. The World Health Organization has released surveillance guidelines, advising all evacuated passengers to undergo prolonged health monitoring to stop further transmission.
via CGTN
Swiss authorities have confirmed a case of #hantavirus identified in a passenger from the MV Hondius cruise ship.
He had responded to an email from the ship’s operator informing the passengers of the health event, and presented himself to a hospital in Zurich, Switzerland, and is receiving care.
In line with the International Health Regulations (IHR), WHO is working with relevant countries to support international contact tracing, to ensure that those potentially exposed are monitored and that any further disease spread is limited.
The type of virus in this outbreak has been confirmed as Andes hantavirus by the National Institute for Communicable Diseases @nicd_sa, South Africa and the Geneva University Hospitals @hug_ge, Switzerland The support of the Institut Pasteur de Dakar @PasteurDakar, Senegal and the Administración Nacional de Laboratorios e Institutos de Salud @ANLIS_Malbran, Argentina has also been critical in responding to this event.
As of 6 May, there are 8 cases, 3 of whom are confirmed as hantavirus by laboratory testing.
WHO will continue to work with countries to ensure that the patients, contacts, passengers and crew have the information and support they need to stay safe and prevent spread.
X LINK
About Hantavirus
(spread mainly by rodents)
Swiss authorities have confirmed a case of #hantavirus identified in a passenger from the MV Hondius cruise ship.
He had responded to an email from the ship’s operator informing the passengers of the health event, and presented himself to a hospital in Zurich, Switzerland, and is receiving care.
In line with the International Health Regulations (IHR), WHO is working with relevant countries to support international contact tracing, to ensure that those potentially exposed are monitored and that any further disease spread is limited.
The type of virus in this outbreak has been confirmed as Andes hantavirus by the National Institute for Communicable Diseases @nicd_sa, South Africa and the Geneva University Hospitals @hug_ge, Switzerland The support of the Institut Pasteur de Dakar @PasteurDakar, Senegal and the Administración Nacional de Laboratorios e Institutos de Salud @ANLIS_Malbran, Argentina has also been critical in responding to this event.
As of 6 May, there are 8 cases, 3 of whom are confirmed as hantavirus by laboratory testing.
WHO will continue to work with countries to ensure that the patients, contacts, passengers and crew have the information and support they need to stay safe and prevent spread.
X LINK
About Hantavirus
(spread mainly by rodents)
Soberanía Sanitaria
🐦@SoberaniaSalud
____
#Hantavirus: el precio de desfinanciar ➡️Investigadorxs del CONICET cuentan en esta nota qué es lo que faltó, en qué se recortó, y cómo debería actuarse en estas situaciones. Siempre, la importancia de un Estado presente. @RAIIS_ARGhttps://t.co/oqkK5bXcf4
____
🔗http://twitter.com/SoberaniaSalud/status/1087361266790871045
🦠🚨HANTAVIRUS OUTBREAK HITS 36 AMERICANS ACROSS 16 STATES
🔹 16 cruise passengers quarantined at Nebraska Medical Center, 2 more at Emory Atlanta 🚢
🔹 Only known human-to-human hantavirus strain - rare Andes virus with 6-week incubation ⚠️
🔹 42-day quarantine as 11 cases confirmed globally, 3 deaths, 150 total exposed 💀
🔹 Monitoring in Texas, Georgia, Arizona, Virginia, California with twice-daily checks 🌡️
CDC says pandemic risk 'extremely low' but one French patient on life support
This Andes strain killed Gene Hackman's wife - could explode nationwide! 😰
#USNews#Hantavirus
@america
🛥️🦠 Trois autres passagers à bord du bateau de croisière MV Hondius ont montré des symptômes du hantavirus, rapporte la chaîne CNN.
Précédemment, la BBC, citant des responsables du ministère sud-africain de la Santé, avait rapporté qu’un passager de 70 ans et son épouse de 69 ans, tous deux de nationalité néerlandaise, figurent parmi les victimes d’une possible flambée de hantavirus à bord du paquebot de croisière MV Hondius, qui assurait la liaison entre l’Argentine et le Cap-Vert.
Photo: New York Post/X
#hantavirus#paquebot#victimes
🛥️🦠 Trois autres passagers à bord du bateau de croisière MV Hondius ont montré des symptômes du hantavirus, rapporte la chaîne CNN.
Selon CNN, le navire transportait 170 passagers et 71 membres d’équipage. Il est désormais amarré dans le port de Praia, la capitale du Cap-Vert. Les passagers et l’équipage n’ont pas l’autorisation de quitter le paquebot, des médecins les examinent à bord.
Précédemment, la BBC, citant des responsables du ministère sud-africain de la Santé, avait rapporté qu’un passager de 70 ans et son épouse de 69 ans, tous deux de nationalité néerlandaise, figurent parmi les victimes d’une possible flambée de hantavirus à bord du paquebot de croisière MV Hondius, qui assurait la liaison entre l’Argentine et le Cap-Vert.
Photo: New York Post/X
#hantavirus#paquebot#victimes