Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
Review of Glutinous Rice Ball Workshops and Tea Parties in Aberdeen & Glasgow
花崗岩城與格拉斯哥湯圓製作工作坊及茶聚 回顧
#花崗岩城#Aberdeen 與 #格拉斯哥#Glasgow 湯圓製作工作坊及茶敘,旨在讓參加者有機會了解香港的冬季節日文化,以及自製糯米 湯圓。這是Mission Perm計劃在 Aberdeen舉辦的首次面對面活動⋯⋯使新到埗港人有更多社群參與,讓他們進一步融入社區。兩場活動都有多位蘇格蘭本地非華裔人士參與,活動讓他們了解香港節慶文化。促進香港人和蘇格蘭人之間的文化互動⋯⋯
⋯⋯以上應該係我哋2023年最後嘅實體活動。祝大家冬至平安、#聖誕快樂 同 #新年快樂!
Glutinous Rice Ball Workshops and Tea Parties in Aberdeen & Glasgow, which aimed to offer participants a chance to learn about the Winter festival culture of Hong Kong, and homemade glutinous rice ball. This is the first in-person activity occurring in Aberdeen. In both sessions, there were several native Scots to join and learn about Hong Kong Festival Culture. It enhanced the cultural diversity and interaction between Hongkongers and Scots.
These should be our last physical activities in 2023. We wish you all a safe winter solstice, a merry Christmas and a happy New Year!
閱讀報告全文,
請訂閱Patreon,同時請支持我哋日常運作!
https://www.patreon.com/posts/94874815
Thanks to the Govan & Linthouse Parish Church for co-organising this event.
特別鳴謝Govan & Linthouse Parish Church協辦是次活動。
假如身在蘇格蘭嘅你錯過咗 呢次活動,請唔使失望,我哋喺1月、2月分別有香港開埠紀念同農曆新年節慶活動!歡迎留言或者inbox同我哋講你所在嘅城市,讓我哋更能夠掌握大家參與活動嘅意向!
—
單次捐款支持我哋
https://thehongkongscots.sumupstore.com
喺蘇格蘭,有嘢要搵我哋幫手?即填:
https://forms.gle/n8cSUkW2HS19BRVg7
想同我哋並肩作戰,參與我哋日常運作?
Get Involved!
https://forms.gle/HCvXDXrpUMa2TtwB9